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