web-dev-qa-db-ja.com

HTTP(S)URLのホスト名部分は本当に大文字と小文字を区別しませんか?

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

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

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

URLのホスト名の部分に大文字が含まれているという問題が発生しましたか?


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

特にクライアントで、非準拠ソフトウェアがいかに普及しているかを理解しようとします。最近の主要なブラウザはすべて問題ないと思いますが、たとえばモバイルアプリについて? (これを別のSFの質問に分割した方がいいですか?)[/編集]

16
Nils Toedtmann

はい、 RFC 3986§3.2.2 で指定されているように、ホスト名は実際には大文字と小文字を区別しません。これは、 ホスト名は一般にDNSで大文字と小文字を区別しないためです。 。このRFCには、あなたが言及した問題を回避する方法に関する推奨事項も記載されています。

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

この方法でホスト名を正規化せず、コンテンツを複数回キャッシュすることになるHTTPキャッシュ( W3 Total Cache )を少なくとも1つ見ました。下 example.comExample.ComEXAMPLE.COMなど.

23
Michael Hampton