Является ли имя хоста частью HTTP(S) URL действительно без учета регистра?
Безопасно ли использовать http(s)://CompanyName.com/xyz в качестве URL (например, для целей брендинга) без каких-либо изменений в конфигурациях на стороне службы?
Я знаю, что DNS нечувствителен к регистру, но могут ли быть побочные эффекты? Я имею в виду, например, различные части цепи, которые не соответствуют CompanyName.com ~ companyname.com:
- Некоторые веб-серверы могут не совпадать
- Некоторые брандмауэры балансировки нагрузки / прокси / кэша / прикладного уровня могут не совпадать
- Некоторые клиенты могут применять политики одного и того же происхождения неправильно
- Некоторые клиенты могут не совпадать при проверке сертификатов
- Хотя DNS, как правило, не учитывает регистр, могут ли IDN изменить картину?
Кто-нибудь испытывал те или иные проблемы с прописными буквами в части имени хоста URL?
[править] @ Майкл Хэмптон отметил, что, согласно стандартам HTTP, имя хоста не чувствительно к регистру, но некоторые программы несовместимы в этом отношении.
Я пытаюсь понять, насколько распространено несовместимое программное обеспечение, в частности клиенты. Я предполагаю, что все последние крупные браузеры в порядке, но что насчёт мобильных приложений? (Должен ли я лучше разделить это на отдельный вопрос SF?) [/ Edit]
1 ответ
Да, имя хоста действительно нечувствительно к регистру, как указано в RFC 3986 § 3.2.2, потому что имена хостов вообще не чувствительны к регистру в DNS. Этот RFC также дает рекомендации о том, как избежать упомянутых вами проблем:
Хотя хост не учитывает регистр, производители и нормализаторы должны использовать строчные буквы для зарегистрированных имен и шестнадцатеричные адреса для единообразия, в то время как только заглавные буквы используются для кодирования процентов.
Я видел по крайней мере один HTTP-кеш ( W3 Total Cache), который не нормализует имя хоста таким образом и заканчивает кэширование контента несколько раз, например, в example.com
, Example.Com
, EXAMPLE.COM
, так далее.