Сохранение дела
URL-адреса между клиентом и сервером сохраняют регистр. Но части URL-адресов могут быть или не быть чувствительными к регистру, в зависимости от сервера, по нескольким причинам.
Чувствительность к регистру
В следующих полужирных частях URL-адресов может учитываться регистр, в зависимости от конфигурации сайта и / или сервера.
http: // www. example.com /abc/def.ghi?jkl=mno#pqr
пользователь @ example.com
Обоснование
Чувствительность к регистру в URL-адресах может иметь несколько применений. В основном:
- Встроенная совместимость с файловыми системами, чувствительными к регистру.
- Более компактное кодирование данных в URL-адресах, например для сериализации, хеширования, идентификаторов, постоянных ссылок и сокращателей URL-адресов.
Как разработчик, я считаю, что с вышеизложенным часто можно справиться лучше, но я также понимаю, что есть случаи, когда ситуация не позволяет этого.
Например, представьте существующий продукт, который требует размещения большого количества данных в URL-адресе GET, но при этом должен быть совместим с максимальной длиной URL-адресов всех основных серверов, браузеров и механизмов кэширования / прокси. Чтобы уместить даже командную строку средней длины (менее 1024 символов для некоторых старых браузеров), вам нужно будет использовать каждый уникальный URL-безопасный символ, который вы могли бы (что в основном является кодировкой base64url).
В идеальном мире
Вопрос о том, должны регистрироваться в URL-адресах или нет, остается спорным. Я лично считаю, что этого не должно быть для простоты (хотя это может создавать более длинные URL-адреса, у нас есть процентные экранирования, чтобы легко обрабатывать случаи, когда мы должны гарантировать сохранение точных символов, и есть способы передачи данных, отличные от прямо в URL-адресе) .
Многие, похоже, согласны с тем, что URL-адреса без учета регистра явно включены для многих популярных сайтов и служб, чтобы повысить удобство использования. Самый яркий пример - это имя пользователя в адресах электронной почты. Большинство провайдеров электронной почты игнорируют регистр, а иногда даже точки и другие символы (например, [email protected] совпадает с [email protected]). Несмотря на то, что имена пользователей электронной почты по умолчанию чувствительны к регистру, согласно спецификации.
Однако факт в том, что, несмотря на то, что я или другие могли бы хотеть, это то, как все работает в настоящее время. И хотя в конечном итоге глобальный переход к стандарту URL-адресов без учета регистра, вероятно, займет довольно много времени, поскольку в настоящее время чувствительность к регистру широко используется в Интернете для различных целей.
Лучшие практики
Что касается лучших практик, вы, как пользователь, можете разумно придерживаться строчных букв в большинстве ситуаций и ожидать, что все будет работать. Основными исключениями будут URL-адреса, в которых используется кодировка на основе регистра или пути к документам с прямыми эквивалентами файловой системы. Однако такие сложные URL-адреса обычно копируются (или просто щелкаются), а не вводятся вручную.
Как веб-разработчик, вам следует подумать о том, чтобы URL-адреса были как можно более нечувствительными к регистру. Хотя, как отмечалось выше, явно есть некоторые ситуации, которых трудно избежать, в зависимости от контекста.
person
Beejor
schedule
02.07.2019