url短縮サービスを見様見真似
tinyurlとかbit.lyみたいなアレね。
簡単そうに見えるけど結構面倒くさかった。
一番簡単な処理の流れ(単一ページで対応)
- htaccessで短縮キー部分をgetリクエスト(k)にしておく
- getリクエストで'k'があればそれを短縮キーとみなして、データベースからキーに対応するURLを引っ張ってきてLocation:ヘッダで飛ばす。処理終了
- postリクエストで'url'があればURL登録とみなす
- まずurlでDBに問い合わせて、キーが登録されてればそれを使う
- 登録されていなければ、ランダム英数5文字を生成してキーとする
- キーとURLをデータベースに格納
- キーを含む短縮URLを表示
- 何もなければ普通に登録フォーム表示
これでこんな感じ→http://j.shak.jp/EFFTu
たったこれだけ書くのに3KBも必要とか(笑)
これ以上作るのは面倒だしbitlyのAPI使った方が楽なのでおしまい。
本家サービスさんはこれに加えてログの取得や解析もしてるし、
エスケープ処理なんかも適切だし登録履歴も保存されてるしで、
単純そうに見えて結構色々やってる。やってることは大体基本的だけど。
今度はクローラ使った何かをやってみたいなあ。データが集積される様を観察したい。