プロが教える店舗&オフィスのセキュリティ対策術

地図などは凄い長いURLになりますが、無限なのでしょうか?

A 回答 (6件)

先ほどの回答者です。


参考URLが自分のサイトでしたww
こっちのURLが参考サイトです。
http://support.microsoft.com/kb/208427/ja
失礼しました

参考URL:http://support.microsoft.com/kb/208427/ja
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2013/03/05 20:27

URL Standard に従い URL = URI + IRI の総称として扱いますが、



URL 自体に長さの制約はありません。すでに回答にあるようにアプリケーションごとに実際的な制約が加えられる可能性と、またスキームごとの制約、そしてスキーマごとの制約の可能性があります(うーん、ややこしい)。

スキームごとの制約とは、例えば data: スキーム(RFC 2397)。これはリソース自体を文字列化して URL にしてしまおうという大胆なものですが、リソースが大きくなれば文字列も膨大なものになってしまいます。しかも、HTML 2.0~4.0 まではタグ内に書ける文字数にも制約がありましたので(1024~65535)、<a href="data:...."> の中に納まるように考えてね、という注意書きがあります。同じようなものには javascript: スキームもありますね。

スキーマごとの制約とは、これはどちらかと言えば XML の話になりますが(将来的には JSON もかな)、スキーマを使って「ここの URL は何文字以内でないとダメ」と指定することができます。まあ、この方法は分かりやすいでしょう。

そういうわけで、URL 自体の長さに制約はありませんが、安全のために制約を与えることも可能ですし、アプリケーションの限界のために制約が設けられている可能性もあります。

---

ちなみに、パスはリソースの階層的表現、クエリはリソースの非階層的表現、フラグメントはリソースの内部表現です。そういうつもりで使い分けてみて下さい。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2013/03/05 20:27

URLを扱うハードウェアやソフトウェアは有限の資源を用いて実装されますので、URL文字長が無制限はありえません。



- 256MBのメモリを持つPCで256MBを超えるURL文字長を扱う事ができるのか。
- メモリの代わりにHDDに記憶したとして実用に支障ないパフォーマンスを得られるのか。
- 物理メモリとHDDを合計した容量を超えるURL文字長を扱うことができるのか。

頭の中で考える上では無限に見えても実装するには物理的な制約が伴うので、URL文字長を制限せざるを得ないのが実情だと思います。
HTTP 1.1 (RFC2616) ではURIの文字長に制限はありませんが、256バイト以下を推奨しています。

--- RFC2616より引用 ---
"注: いくつかの古いクライアントやプロクシ実装は 255 バイトを超える長さを持つ URI を適切にサポートしていないかもしれないので、サーバはそのような URI に頼る場合は注意を払うべきである。"
http://www.studyinghttp.net/rfc_ja/rfc2616#Sec3. …
-----------------------

URLに関わるソフトウェア上の実装もいくつかあります。

- ブラウザ (IE, Firefox, Google Chrome, Opera, Safari等)
- サーバ上のOS
- サーバのファイルシステム
- Webサーバソフト (Apache, IIS等)

IE7,8 は既に回答されているように2,083文字の制限があります。
http://support.microsoft.com/kb/208427/ja
IE9 には触れられていないようで仕様は見つかりませんでしたが、下記URLで試した情報によると制限は5120バイトに増加したそうです。
(ただし、私自身は未確認なので参考情報レベルと受け取ってください)
http://stackoverflow.com/questions/3721034/how-l …
Apache では LimitRequestLine でHTTPリクエスト行のサイズを制限できますが、デフォルト値は8190バイトです。
http://httpd.apache.org/docs/2.2/ja/mod/core.htm …
他にも下記URLで調査された方がデータを公開してくれています。
http://www.connect-i.co.jp/tipsblog/?p=6

URL最大長の限界に挑戦する等、特別な理由がないのであれば、URL文字長を256バイト以下に抑えればほとんどの実装で正常動作すると考えて差し支えないかと思います。
長大なファイル名や深い階層は管理コスト的にも好ましくないと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2013/03/05 20:27

本来は無制限ですが、制約を設けることが通常です。


下記サイトにまとめられています。
 ⇒[tech]HTTP GETメソッドのURIの長さ制限を調べてみた - Kazumi007の日記( http://d.hatena.ne.jp/Kazumi007/20090921/1253501 … )

 質問で気になるのですが、URI(URL)は単にパスだけと思わないでください。
URLは
 http:// プロトコルとインターネット
 hoge.com       サーバー名
 abc/efg/hijの?まで PATH_INFO
 ?以降の        QUERY_STRINGS
で構成されています。#以降はサーバーには送られない

 PATH_INFOは、必ずしも実際のディレクトリやファイル名を示すわけではありません。これもサーバーに渡す単なるデータに過ぎません。
 例えば、wikiの http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3% … の/wiki/以降はファイル名ではありません。

 QUERY_STRINGSは、URLの一部としてデータを渡す方法で、フォームでのサーバーへの要求手段がGETの場合は、ここにデータが入ります。POSTの場合は、標準入力です。

 サーバーに大量の情報を渡す必要があるときは、POSTを使えば良いでしょう。また、単純なデータの場合はPATH_INFOを使うと良いです。
    • good
    • 1
この回答へのお礼

ありがとうございます。

お礼日時:2013/03/05 20:27

HHNVTOYXLU4さん



マイクロソフトのサイトでは、Internet Explorerで使用出来る文字数を
2048文字までとしているようです。

しかしそれだけ長い文字列は必要ではないと思いますが^^

予断ですが、送信フォームなどでは、ホームページのURLを200文字くらいに制限しているところもあります!
※これはデータベース側が保存できる容量によるものだったり、
 サイト攻撃のスクリプトなどを埋めこまれないようにするための処置だったりします。

参考URL:http://support.microsoft.com/kb/208427/ja
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2013/03/05 20:27

どもー


インターネット・エクスプローラー7&8
に限っていえば、2,083文字まで使えるそうですよ
他のブラウザについてはまだ調べてませんがw
参考になれば幸いです。

参考URL:http://bibibibstyle.jimdo.com/
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2013/03/05 20:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!