Имеет ли место имя хоста HTTP (верхний/нижний)?

Другими словами, имеет значение, использую ли я http://www.example.com/ или http://www.example.com/?

В последнее время я столкнулся с странными проблемами с именами хостов: у меня есть веб-сервер Apache2.2 + PHP5.1.4, доступ к которому осуществляется всеми видами браузеров. В частности, пользователи IE6 (особенно, когда их строка UA обременена многочисленными BHO, пока нет шаблона), похоже, имеют проблемы с доступом к сайту (cookie исчезает, JS отказывается загружаться) при входе через http://www.example.com/, но не http://www.example.com/

Я проверил HTTP и DNS RFC, my политики P3P, настройки файлов cookie и SOP; но нигде я не видел даже упоминания о том, что имена доменов чувствительны к регистру.

(Я знаю, что строка пути и запроса чувствительны к регистру (?x=foo отличается от ?x=foo) и обрабатывает их соответственно, я не обрабатываю обработку/обработку имени домена в своем коде)

Я делаю что-то неправильно или это просто какой-то браузер + панель инструментов, над которой я должен работать?

Ответ 1

Доменные имена не с учетом регистра; Example.com будет разрешен к тому же IP-адресу, что и Example.com. Если веб-сервер или браузер обрабатывает заголовок Host как чувствительный к регистру, это ошибка.

Ответ 2

Нет, это не должно иметь никакого значения.

Проверьте URL-адрес RFC Spec (http://www.ietf.org/rfc/rfc1738.txt). Из раздела 2.1:

Для отказоустойчивости, программы, интерпретирующие URL-адреса должны обрабатывать буквы верхнего регистра как эквивалентно нижнему регистру в схеме имена

Ответ 3

Поскольку вы сформулировали свой вопрос как практический вопрос, а затем описали реальную проблему, ответ на самом деле: ДА.

Другие ответы правильны о том, что спецификация RFC говорит о именах хостов. Технически они должны быть нечувствительны к регистру. (На самом деле, более старым соглашением было то, что домен верхнего уровня (TLD) должен был быть во всех кепках... например, "apple.COM" ).

Однако, в реальном мире, зрелые программы, такие как ОС-решения и основные браузеры, получают это право. Любой вид вторичного кода мог бы справиться с этим неправильно и испортить вам.

Ответ 4

Согласно http://tools.ietf.org/html/rfc1035:

Для всех частей DNS, которые являются частью официального протокола, все сравнения между символьными строками (например, метки, имена доменов и т.д.) выполняются без учета регистра. В настоящее время это правило находится в сила во всей системе домена без исключения.

Далее говорится, что это может измениться в будущем. Я думаю, что можно с уверенностью предположить, что домен COM не зависит от регистра, но другие домены, допускающие использование символов, отличных от ASCII, могут отличаться.

Ответ 5

Нет, в отношении спецификатора протокола отсутствует чувствительность к регистру.

Это можно увидеть в URL-адресах RFC.

2,1. Основные части URL

Имена схем состоят из последовательности персонажи. Строчные буквы "a" - "z", цифры и символы плюс ( "+" ), период ( "." ) и дефис ( "-" ) разрешается. Для устойчивости, программы, интерпретирующие URL-адреса, должны обрабатывать буквы в верхнем регистре как эквивалентные к нижнему регистру в именах схем (например, разрешить "HTTP", а также "http" ).