[フレーム]

やむにやまれず

2006年創業の会社を経営する元プログラマ。現在従業員12名(内7名が欧米人)で元気にお仕事中。今はもうコードは書いてないので、いつか復帰したい。@sparklegate

URIは感性で良いか悪いかが決まるものではないと思うので、この場ではいかにCoolかどうかは議論しない。
ただ、「?や=が悪い」という問題を挙げて、対策を「/にしたらいい」は短絡的すぎて考え方がCoolじゃないとは思う。

そもそもURIは、Uniform Resource Identifierの略だ。
リソースに対する識別子として機能する必要がある。
「?や=が悪い」のは、リソースに対する識別子として有効でないケースがあるためだ。
推測の域を脱しないが、一時期の検索エンジンは、検索結果として可能な限り1つのリソースを提示する目的から、そうした一意性の低いURIを検索結果に含めなかったこともあって、SEO業者が「?や=が悪い」説を広めてしまったのではないだろうか。

例えば、以下の2つは本質的にURIの役割を果たしている。
該当する本のリソースを取得してみよう。
  • http://example.com/book?isbn=xxx
  • http://example.com/book/xxx/
どちらか一方のURIを設計時に採用するのであれば、実際のところどちらもリソースに対して一意となるので本質的に違いはない。

ただし、以下の場合はどうだろうか。
1000円〜2000円の幅にある本のリストを取得してみる。
  • http://example.com/book_list?min_price=1000&max_price=2000&unit=yen
  • http://example.com/book_list/price_range/1000/2000/yen/
後者の方が一意である。(例が悪いけど)
前者は以下のように文字列として異なるものを書いても、到達するリソースが同じであるためだ。
  • http://example.com/book?max_price=2000&unit=yen&min_price=1000
このURIを正規化する暗黙のルールを定義するか、key=valueの連結というフォーマットは所詮一般的なブラウザとサーバ間での都合だから、純粋にQUERY_STRINGを処理する形で一意性の高いパラメータの記述を独自に定義すれば良い。

また、/にしたからと言って一意にならない設計もある。
本に付けられたタグ検索を提供するため、タグを複数指定しAND検索できるようにと、タグ名を/で連結してしまった例。
  • http://example.com/book_tag/word1/word2/word3/
これは本質的に/が&になってしまった例。
word1, word2, word3のセットであれば順序によらず、得られるリソースは同じになるだろう。

とにかくURIは一意性を高めるべき。
一意性を損なわせるようであれば、「?や=が悪い」こともあるし、「/にしたらいい」というのがCoolな解決策にならないこともあるのではないだろうか
タグ :
#Cool
#URI
#URL

コメント一覧 (1)

    • 1. ユーリ(SG688)
    • 2008年07月10日 10:04
    • おはようございます、ユーリです。
      どこに連絡をいれてよいのかわからなかったのでメールしたんですが、なぜだか戻って来てたのでコメントさせてくださいorz

      ぴのこ村が7/5(土)の25時頃からログインできなくなりました。翌日の日曜日8時の時
      点で一瞬入れるようになったようなのですが(十希君情報)、その後現在まで一度も
      ログインできない状態です。
      もしお気づきでしたらすみませんが、
      一応ご報告いたします。

      では。

コメントする

名前
最新記事
人気記事
QRコード
traq

AltStyle によって変換されたページ (->オリジナル) /