例えば「イケメン」の項目なら、
http://ja.wikipedia.org/wiki/%E3%82%A4%E3%82%B1%E3%83%A1%E3%83%B3
といった具合に項目名をURLエンコードしたものがURLとなっていますが、
これについてのメリット・ディメリットで、ぱっと思いついたところでは、
メリット:
・URLの一意性を確保しやすい・わかりやすい
・URLに規則性がないため、ボットなどでのURLの総当たりが極めて困難
・ブラウザのアドレス入力フォームに知りたい項目名をURLに含めれば比較的楽にアクセスできる
ディメリット:
・URLがかなり冗長になる
・携帯からのアクセスを考慮するなら別のURLを用意してやらないといけない
(iモードの場合はアクセス可能なURLは256バイトまでのため)
・項目名とデータベースの紐付けが必要でサーバーに負荷がかかりそう
とこんな感じでしょうか。
上記以外でほかにありましたら教えてください。宜しくお願いします。
>URLの一意性を確保しやすい・わかりやすい・比較的楽にアクセスできる
そうですね。これは大きなメリットです。
>URLに規則性がない
単語でのアタックが可能です。ただし、特定のアドレスからのアクセス集中などに対しては自動的に特定アドレスだけ一時アクセス禁止にすることも出来ますので大きな心配はありませんし、書き込みには登録とログインが必要ですからこちらも大きな心配は無いでしょう。
>サーバーに負荷がかかりそう
Proxyキャッシュを用いていればサーバー負荷は静的ページと大差無いです。
>256バイトまで
イケメン4文字で36バイトですから全角25文字程度まではキーワードとして入力可能ですが全角25文字よりも長くなるようなキーワードってどの程度考えらるでしょう?
以下、システム面から見た回答です。
イケメンなどのキーワードを送るには
・GET(URLの一部に情報を入れる)
・POST(別途で情報を送信する)
二つの方法があります。
POSTの場合は入力フォームを用意するか、もしくはJAVAScriptなどのクライアントサイドスクリプトで入力フォーム同様の処理を行わせるといった面倒な手間がかかります。
GETの場合はリンク先URLの末尾に付けるだけですから仕組みは非常に簡単になります。
(サーバー負荷はGETのほうがシンプルで軽いです)
WIKIの場合はGETの変形的なものとなります。
http://ja.wikipedia.org/ というサーバーは wiki/%E3%82%A4%E3%82%B1%E3%83%A1%E3%83%B3 というアドレスを受け取った時点でアドレス変換(rewrite)を行ってイケメンという単語をデータ検索プログラムに渡して動的にページを生成させます。
アクセスの度に動的ページを生成していたのではサーバー負荷は結構なものになってしまいますが、
http://ja.wikipedia.org/wiki/%E3%82%A4%E3%82%B1%E3%83%A1%E3%83%B3
という表記は静的ページの場合と同じ命名規則になってますのでProxyキャッシュが静的なページとして保持してデータベースに替わって応答してくれますので、データベースへの負荷はそれほど大きくはなりません。
む~、やっぱりそうなりますかね。
有り難うございます。
回答有り難うございます。
>Proxyキャッシュを用いていればサーバー負荷は静的ページと大差無いです。
あ、キャッシュとかは考えなくて単純に動的に作成した場合のことを考えてました。
キーワードとデータベースのIDを紐付けするテーブルが必要(だと思う)ので、ン百万ページ単位だと、キャッシュのヒット率も当然低くなるし、そのリソースも馬鹿にならないだろうなぁ、と。
まぁ、全体から見ると微々たるものだと思いますけどね(汗)
>イケメン4文字で36バイトですから全角25文字程度まではキーワードとして入力可能ですが全角25文字よりも長くなるようなキーワードってどの程度考えらるでしょう?
256バイトについては、例えば256文字(バイト)以上のURLをコピペして携帯にURLを送った場合、256バイト以降は無視されてしまうため、携帯からそのURLはアクセスできない、といったことがでてきます。仰る通り大方25文字以内で収まると思いますが、25文字以内に収まらないものは利用者に諦めてくれとは言えませんのでその時どうするの?といった話です。
説明が足りなくて失礼しました。。