HTTP(S) URL 的主機名稱部分真的不區分大小寫嗎?

HTTP(S) URL 的主機名稱部分真的不區分大小寫嗎?

在不對服務端配置進行任何更改的情況下使用 http(s)://CompanyName.com/xyz 作為 URL(例如用於品牌目的)是否安全?

我知道 DNS 不區分大小寫,但還會有副作用嗎?我正在考慮例如鏈的各個部分未能匹配 CompanyName.com ~ companyname.com:

  • 某些Web後端可能無法匹配
  • 某些負載平衡器/代理/快取/應用層防火牆可能無法匹配
  • 某些客戶端可能會錯誤地應用同源策略
  • 某些用戶端可能無法在憑證檢查中匹配
  • 雖然 DNS 通常不區分大小寫,但 IDN 可以改變這種情況嗎?

有人在 URL 的主機名稱部分遇到這些或其他大寫問題嗎?


[編輯] @Michael Hampton 指出,根據 HTTP 標準,主機名稱不區分大小寫,但某些軟體在這方面不相容。

我試圖了解不合規軟體(尤其是客戶端)的普遍程度。我認為所有最新的主要瀏覽器都很好,但是例如行動應用程式呢? (我應該更好地將這個問題分成一個單獨的 SF 問題嗎?)[/edit]

答案1

是的,主機名稱確實不區分大小寫,如中指定的RFC 3986 § 3.2.2, 因為DNS 中的主機名稱通常不會區分大小寫。此 RFC 還提供了有關如何避免您提到的問題的建議:

儘管主機不區分大小寫,但為了統一起見,生產者和標準化者應使用小寫字母表示註冊名稱和十六進位位址,而僅使用大寫字母表示百分比編碼。

我至少見過一個 HTTP 快取(W3 總緩存) 不會以這種方式標準化主機名,並最終多次快取內容,例如在example.comExample.ComEXAMPLE.COM等下。

相關內容