URIは感性で良いか悪いかが決まるものではないと思うので、この場ではいかにCoolかどうかは議論しない。
ただ、「?や=が悪い」という問題を挙げて、対策を「/にしたらいい」は短絡的すぎて考え方がCoolじゃないとは思う。
そもそもURIは、Uniform Resource Identifierの略だ。
リソースに対する識別子として機能する必要がある。
「?や=が悪い」のは、リソースに対する識別子として有効でないケースがあるためだ。
推測の域を脱しないが、一時期の検索エンジンは、検索結果として可能な限り1つのリソースを提示する目的から、そうした一意性の低いURIを検索結果に含めなかったこともあって、SEO業者が「?や=が悪い」説を広めてしまったのではないだろうか。
例えば、以下の2つは本質的にURIの役割を果たしている。
該当する本のリソースを取得してみよう。
ただし、以下の場合はどうだろうか。
1000円〜2000円の幅にある本のリストを取得してみる。
前者は以下のように文字列として異なるものを書いても、到達するリソースが同じであるためだ。
また、/にしたからと言って一意にならない設計もある。
本に付けられたタグ検索を提供するため、タグを複数指定しAND検索できるようにと、タグ名を/で連結してしまった例。
word1, word2, word3のセットであれば順序によらず、得られるリソースは同じになるだろう。
とにかくURIは一意性を高めるべき。
一意性を損なわせるようであれば、「?や=が悪い」こともあるし、「/にしたらいい」というのがCoolな解決策にならないこともあるのではないだろうか
ただ、「?や=が悪い」という問題を挙げて、対策を「/にしたらいい」は短絡的すぎて考え方がCoolじゃないとは思う。
そもそもURIは、Uniform Resource Identifierの略だ。
リソースに対する識別子として機能する必要がある。
「?や=が悪い」のは、リソースに対する識別子として有効でないケースがあるためだ。
推測の域を脱しないが、一時期の検索エンジンは、検索結果として可能な限り1つのリソースを提示する目的から、そうした一意性の低いURIを検索結果に含めなかったこともあって、SEO業者が「?や=が悪い」説を広めてしまったのではないだろうか。
例えば、以下の2つは本質的にURIの役割を果たしている。
該当する本のリソースを取得してみよう。
どちらか一方のURIを設計時に採用するのであれば、実際のところどちらもリソースに対して一意となるので本質的に違いはない。
- http://example.com/book?isbn=xxx
- http://example.com/book/xxx/
ただし、以下の場合はどうだろうか。
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/
前者は以下のように文字列として異なるものを書いても、到達するリソースが同じであるためだ。
このURIを正規化する暗黙のルールを定義するか、key=valueの連結というフォーマットは所詮一般的なブラウザとサーバ間での都合だから、純粋にQUERY_STRINGを処理する形で一意性の高いパラメータの記述を独自に定義すれば良い。
- http://example.com/book?max_price=2000&unit=yen&min_price=1000
また、/にしたからと言って一意にならない設計もある。
本に付けられたタグ検索を提供するため、タグを複数指定しAND検索できるようにと、タグ名を/で連結してしまった例。
これは本質的に/が&になってしまった例。
- http://example.com/book_tag/word1/word2/word3/
word1, word2, word3のセットであれば順序によらず、得られるリソースは同じになるだろう。
とにかくURIは一意性を高めるべき。
一意性を損なわせるようであれば、「?や=が悪い」こともあるし、「/にしたらいい」というのがCoolな解決策にならないこともあるのではないだろうか
[フレーム]
コメント一覧 (1)
どこに連絡をいれてよいのかわからなかったのでメールしたんですが、なぜだか戻って来てたのでコメントさせてくださいorz
ぴのこ村が7/5(土)の25時頃からログインできなくなりました。翌日の日曜日8時の時
点で一瞬入れるようになったようなのですが(十希君情報)、その後現在まで一度も
ログインできない状態です。
もしお気づきでしたらすみませんが、
一応ご報告いたします。
では。