よくwikipediaなどwikiシステム(?)では、

例えば「イケメン」の項目なら、

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バイトまでのため)
・項目名とデータベースの紐付けが必要でサーバーに負荷がかかりそう

とこんな感じでしょうか。
上記以外でほかにありましたら教えてください。宜しくお願いします。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2007/01/22 05:30:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:kn1967 No.1

回答回数2915ベストアンサー獲得回数301

ポイント35pt

>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キャッシュが静的なページとして保持してデータベースに替わって応答してくれますので、データベースへの負荷はそれほど大きくはなりません。

id:xxmasaxx

回答有り難うございます。

>Proxyキャッシュを用いていればサーバー負荷は静的ページと大差無いです。

あ、キャッシュとかは考えなくて単純に動的に作成した場合のことを考えてました。

キーワードとデータベースのIDを紐付けするテーブルが必要(だと思う)ので、ン百万ページ単位だと、キャッシュのヒット率も当然低くなるし、そのリソースも馬鹿にならないだろうなぁ、と。

まぁ、全体から見ると微々たるものだと思いますけどね(汗)

>イケメン4文字で36バイトですから全角25文字程度まではキーワードとして入力可能ですが全角25文字よりも長くなるようなキーワードってどの程度考えらるでしょう?

256バイトについては、例えば256文字(バイト)以上のURLをコピペして携帯にURLを送った場合、256バイト以降は無視されてしまうため、携帯からそのURLはアクセスできない、といったことがでてきます。仰る通り大方25文字以内で収まると思いますが、25文字以内に収まらないものは利用者に諦めてくれとは言えませんのでその時どうするの?といった話です。

説明が足りなくて失礼しました。。

2007/01/15 08:10:37
id:kn1967 No.2

回答回数2915ベストアンサー獲得回数301

ポイント35pt

長いURLを携帯に送る場合は http://tinyurl.com/ などで短いURLにして送れば良いと思いますよ。

id:xxmasaxx

む~、やっぱりそうなりますかね。

有り難うございます。

2007/01/15 20:36:13

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません