2009-10-15 19 views

答えて

13

ハッシュはクライアント側だけなので、HTTPのためのルールは、それには適用されない場合があります。

+0

「ハッシュ」は実際にはURLフラグメントであり、サーバーに送信されないため、サーバーの観点からの長さの制限は適用されません。 –

7

ブラウザによって異なります。 サファリ、クロム、Firefoxでは、長いハッシュのURLは合法ですが、サーバーに送信するパラメタの場合、ブラウザに414または413のエラーが表示されます。

たとえば、 のようなURLはhttp://www.stackoverflow.com/?abc#{hash value with 100 thousand characters}のようになります。 location.hashを使用してjavascriptでハッシュ値を取得できますが、http://www.stackoverflow.com/?abc&{query with 100 thousand characters}のようなURLは不正です。このリンクをアドレスバーに貼り付けると、413のエラーコードが与えられ、メッセージはthe client issued a request that was too longとなります。それがウェブページ内のリンクであれば、私のコンピュータでNginxは414エラーメッセージを返します。

私はIEの状況を知りません。

URLの長さの制限は、送信またはHTTPサーバーのためだけであり、ブラウザは毎回ではなく時々チェックし、常にハッシュとして使用することが許可されると考えています。