2009-06-02 3 views
11

つまり、http://www.example.com/http://wwW.exAmPLe.COm/のどちらを使用してもかまいませんか?HTTPホスト名の大文字/小文字は問題になりますか?

最近私はホスト名に奇妙な問題を抱えています。私は、Apache2.2 + PHP5.1.4ウェブサーバーをすべての種類のブラウザからアクセスしています。 IE6特定のユーザー(特に彼らのUA文字列は、多数のBHOを負担したとき、まだありませパターン)は、サイトへのアクセスに問題があるようだhttp://www.Example.com/経由で入力するとき(クッキーが消え、JSはロードを拒否)ではなく、http://www.example.com/

私はHTTPDNSのRFC、私のP3P policies、クッキーの設定とSOPをチェックしました。ドメイン名が大文字と小文字を区別していることにも言及しています。

(私はパスとクエリ文字列は、大文字と小文字が区別されます知っている(?x=foo?x=Foo異なっている)と、それらを適切に処理する;私のコードでは、ドメイン名には何の解析/処理をしていないのです)

私が何か間違ったことかあるアムこれはちょうどいくつかのブラウザ+ツールバーのクラップス私は回避する必要がありますか?

答えて

24

ドメイン名はではなく、で大文字と小文字が区別されます。 Example.comeXaMpLe.CoMと同じIPに解決されます。ウェブサーバまたはブラウザがHostヘッダを大文字と小文字を区別して扱う場合、それはバグです。

+2

あなたが正しいです - キャッシュスクリプトの1つが大文字と小文字を区別してドメイン名を比較していて問題を引き起こしていました。ホスト名を小文字にすることはそれを修正するようです。 – Piskvor

+5

このスクリプトはひどく壊れており、修正する必要があります。 – bortzmeyer

0

いいえ、プロトコル指定子に関して大文字と小文字の区別はありません。

You can see this in the RFC for URLs

2.1。 URLの主要部分

スキーム名は、 文字のシーケンスで構成されています。小文字の "a" - "z"、数字、および プラス( "+")、ピリオド( "。")、およびハイフン ( " - ")が許可されます。弾力性のために、 URLを解釈するプログラムは、 は、スキーム名で大文字小文字にするために、大文字を として扱う必要があります(例: は "http"と "http"を許可します)。

+1

なぜ人々は古くなった仕様を引用し続けるのですか?一口! –

5

いいえ、これで違いはありません。

URL RFC仕様(http://www.ietf.org/rfc/rfc1738.txt)をご覧ください。弾力性のために

、スキームに小文字に 名

+1

+1参照: – cgp

+5

私たちはスキーム名について議論していませんでした。 (また:RFC 1738は古代であり、以来数回更新されています;現在のRFCは3986です)。 –

+0

上記の仕様([http://www.ietf.org/rfc/rfc3986.txt][1])に従ってください。ページ18から :のみパーセントエンコーディングの大文字 >文字を使用しながら >ホストは大文字と小文字を区別しないであるが、生産者と正規化 >は、均一性のために登録名と16進 >アドレスに小文字を使用する必要があります。 [1]:http://www.ietf.org/rfc/rfc3986.txt – geedew

1

http://tools.ietf.org/html/rfc1035によると同等として を大文字に扱うべき URLを解釈するプログラム:すべてのために

をセクション2.1から正式なプロトコルの一部であるDNSの部分、すべて 文字列間の比較(ラベル、ドメイン名など) は、大文字と小文字を区別しない方法で行われます。現在のところ、このルールは例外なくドメインシステム全体で になっています。

これは今後変更される可能性があります。私は、COMドメインが大文字小文字を区別しないと仮定するのは安全だと思いますが、非ASCII文字を使用できる他のドメインは異なるかもしれません。

+0

.COMはIDNも受け入れます...そして、IDNはドメイン名が大文字と小文字を区別しないので、café.comとCAFÉ.comは同じです。 – bortzmeyer

4

実践的な質問としてあなたの質問に言い、実世界の問題を説明したので、答えは実際にはいです。

他の回答は、RFC仕様がホスト名について述べていることについては正しいです。技術的には大文字小文字を区別しないでください。 (実際には、より古いコンベンションでは、トップレベルドメイン(TLD)がすべて "apple.COM"のように大文字であるとされていました)。

しかし、実世界では、OSのリゾルバや主要なブラウザのような成熟したソフトウェアがこの権利を得ています。どんな種類のセカンダリコードでもこのような誤った扱いがあり、あなたをいじめる可能性があります。

関連する問題