Почему чувствительность файлов cookie зависит от регистра?
Я впервые понял пару недель назад, что при настройке http cookie, в то время как имя домена не чувствительно к регистру, путь есть.
Таким образом, cookie, хранящийся для
http://SomeWebSite.com
можно прочитать с помощью
http://SomeWebSite.com
cookie, сохраненный для
http://somewebsite.com/SomePath
невозможно прочитать с помощью
http://somewebsite.com/SomePath
Он просто не будет найден.
Как это четко указано в RFC (см. пункт 3.3.3 здесь) Я сомневаюсь, что надзор, но как пользователь, m не обучен обработке URL-адресов, поскольку текстовые и веб-серверы, чувствительные к регистру, насколько я могу судить, похоже, не имеют никакого значения в любом случае, и будут хорошо работать с страницами; так что мне осталось интересно - в чем причина этого решения?
Кто-нибудь может пролить свет?
Ответы
Ответ 1
Большинство веб-серверов предоставляют идиот-защищенные механизмы. Два общих, о которых я знаю, добавили косые черты в конец имен каталогов (http://example.com/x
= > http://example.com/x/
) и исправление или игнорирование обсадной колонны: (http://stackoverflow.com/ABOUT
выполняет те же функции, что и http://stackoverflow.com/ABOUT
). Однако это не требование веб-сервера, и браузер это знает. http://stackoverflow.com/ABOUT
может быть отправлено на совершенно другую страницу, чем http://stackoverflow.com/ABOUT
. Использование переменных GET с синтаксисом? X = y является популярным, и значения иногда чувствительны к регистру для сценариев сервера. Эти возможные различия должны быть корректно обработаны браузером (не кэшировать их как один и тот же документ, используя разные домены cookie, а не манипулировать Javascript и т.д.).
Ответ 2
Если путь чувствителен к регистру или нечувствителен к веб-серверу. Традиционно unix-подобная ОС: s чувствителен к регистру, в то время как MS нет, и это может быть отражено в веб-серверах, которые разрабатываются в указанной ОС.
Ссылка на информацию о разных файловых системах, которая может представлять интерес.
Update
Какой ресурс указывает URL-адрес на веб-сервер. http://some.domain.name/myFavouriteThings.txt может быть текстовым файлом, хранящимся на моем жестком диске, но он также может быть сохранен в базе данных, указывать на script который запускается и возвращает некоторые случайные строки. Это даже не должен быть текстовый файл, это может быть изображение, видео или что-то еще, что может быть передано в цифровом виде.
Но в этом случае он сохраняется как файл на сервере. Так как сервер является unix-подобной системой, файловая система серверов чувствительна к регистру. Поэтому он найдет файл только в том случае, если случай запроса совпадает с файлом, хранящимся на диске. Если сервер был сохранен на сервере MS, где файловая система нечувствительна к регистру, случай запроса, вероятно, не имеет значения.
Ответ 3
Всегда обрабатывайте все как чувствительные к регистру.