HTTP(S) URL のホスト名部分では、本当に大文字と小文字は区別されないのでしょうか?

HTTP(S) URL のホスト名部分では、本当に大文字と小文字は区別されないのでしょうか?

サービス側の設定を変更せずに、URL として http(s)://CompanyName.com/xyz を使用するのは安全ですか (例: ブランディング目的)?

DNS は大文字と小文字を区別しないことは知っていますが、それでも副作用はあるのでしょうか? たとえば、チェーンのさまざまな部分が CompanyName.com ~ companyname.com と一致しないのではないかと考えています。

  • 一部のウェブバックエンドでは一致しない可能性があります
  • 一部のロードバランサ/プロキシ/キャッシュ/アプリケーション層ファイアウォールは一致しない可能性があります
  • 一部のクライアントは同一生成元ポリシーを誤って適用する可能性がある
  • 一部のクライアントは証明書チェックで一致しない可能性があります
  • DNS は一般的に大文字と小文字を区別しませんが、IDN によって状況が変わる可能性はありますか?

URL のホスト名部分が大文字の場合に、このような問題やその他の問題を経験した人はいますか?


[編集] @Michael Hampton は、HTTP 標準によればホスト名は大文字と小文字を区別しないが、一部のソフトウェアはこの点に関して準拠していないと指摘しました。

特にクライアントにおいて、非準拠ソフトウェアがどの程度普及しているかを把握しようとしています。最近の主要ブラウザはすべて問題ないと思いますが、たとえばモバイル アプリはどうでしょうか? (これを別の SF の質問に分けたほうがよいでしょうか?) [/edit]

答え1

はい、ホスト名は大文字と小文字を区別しません。RFC 3986 § 3.2.2、 なぜならホスト名は一般的にDNSでは大文字と小文字を区別しませんこの RFC では、あなたが言及した問題を回避する方法についても推奨事項が示されています。

ホストは大文字と小文字を区別しませんが、プロデューサーとノーマライザーは、統一性を保つために登録名と 16 進アドレスに小文字を使用し、パーセントエンコードには大文字のみを使用する必要があります。

少なくとも1つのHTTPキャッシュ(W3 トータルキャッシュ) では、ホスト名がこのように正規化されず、example.comExample.ComEXAMPLE.COMなどの下でコンテンツが複数回キャッシュされることになります。

関連情報