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使った方が楽なのでおしまい。


本家サービスさんはこれに加えてログの取得や解析もしてるし、
エスケープ処理なんかも適切だし登録履歴も保存されてるしで、
単純そうに見えて結構色々やってる。やってることは大体基本的だけど。


今度はクローラ使った何かをやってみたいなあ。データが集積される様を観察したい。