Пробелы в URL: обязательность кодирования по RFC
Быстрый ответ
По соглашению, пробелы в URL не допускаются. Их следует заменять специальными кодами — %20
или +
. Таким образом, строку "my file" в адресной строке следует указать как my%20file
или my+file
.
Примеры
https://example.com/my%20file
https://example.com/my+file
Необходимость кодирования пробелов в URL
Пробелы могут вызыать сбои, поскольку могут быть восприняты как символы окончания строки в HTTP-запросах. Чтобы обеспечить безопасность и однозначность ваших URL, кодирование пробелов является обязательным. Помните, неинтерпретированные или случайно опущенные пробелы в прошлом уже становились причиной многочисленных проблем для разработчиков. Не присоединяйтесь к этому списку!
Альтернативы пробелам в URL
Если вы заботитесь о читаемости и SEO, рекомендуется использовать тире (-
) и нижнее подчеркивание (_
) вместо %20
или +
. Эти символы делают URL более легким для чтения и более приятным для поисковых систем.
Обработка пробелов современными браузерами
Современные браузеры, такие как Firefox, сами кодируют пробелы в адресах. Важно иметь в виду, что не все браузеры так заботливы, а старые версии могут заставить вас скучать по доселе используемым методам.
Визуализация
🏠 = URL/веб-сайт
🐿️ = Пробел
🥜 = Кодированный пробел
Бывает приятно, когда всё в порядке:
URL без беспорядка = 🏠 (https://example.com/HomePage)
URL с пробелами = 🏠🐿️ (https://example.com/Home Page)
Чтобы пробелы не мешали, мы используем кодирование:
Пробел: '🐿️'
Кодированный пробел: '🥜' => '%20'
URL с кодированным пробелом: 🏠🔒(https://example.com/Home%20Page)
Поддерживайте ваш виртуальный участок без пробелов! 🏘️🚫🐿️
Стандарты: Вчера и сегодня
Прощай, RFC 1738, здравствуй, RFC 3986 — пришел новый высший закон. По новому стандарту, все недопустимые символы нужно представлять через процентное кодирование. Желательно придерживаться современных стандартов. В этом случае исключение точно недопустимо!
PHP уголок: Кодирование пробелов
Следуя PHP-пути, обязательно уделите внимание кодированию URL. PHP особенно требователен к точному разбору URL, и любые ошибки могут привести к неожиданным проблемам. Запомните: владение кодировкой – важный навык при работе с серверными технологиями!
Кодирование пробелов в URL-запросах
Хотя символ +
используется для обозначения пробелов в URL-запросах, он не является заменой всему. Это просто ещё один способ кодирования, который часто встречается при отправке форм, и который содействует согласованности данных. Не позволяйте %20
захватить всю славу!
Полезные материалы
- URL Standard – спецификация от WHATWG, описывающая допустимые символы в URL.
- RFC 3986 – Uniform Resource Identifier (URI): Generic Syntax – эталонная спецификация URI синтаксиса, содержащая список допустимых символов.
- encodeURIComponent() – JavaScript | MDN – подробное руководство MDN по корректному кодированию URL в JavaScript.
- html – Можно ли использовать пробелы в URL? – Stack Overflow – обсуждение вопроса о пробелах в URL на Stack Overflow.
- Процентное кодирование – Википедия – обзор процентного кодирования, включая правила применения для пробелов.
- HTML Standard – раздел в спецификации HTML5 от WHATWG, посвященный URL, описывающий стандарты применения URL.
- Что такое кодирование URL и как оно работает? | URLEncoder – статья о применении и назначении кодирования URL с демонстрацией практических примеров и рекомендаций.