Пробелы в URL: обязательность кодирования по RFC

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

По соглашению, пробелы в URL не допускаются. Их следует заменять специальными кодами%20 или +. Таким образом, строку "my file" в адресной строке следует указать как my%20file или my+file.

Примеры

  • https://example.com/my%20file
  • https://example.com/my+file
Кинга Идем в IT: пошаговый план для смены профессии

Необходимость кодирования пробелов в 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 захватить всю славу!

Полезные материалы

  1. URL Standard – спецификация от WHATWG, описывающая допустимые символы в URL.
  2. RFC 3986 – Uniform Resource Identifier (URI): Generic Syntax – эталонная спецификация URI синтаксиса, содержащая список допустимых символов.
  3. encodeURIComponent() – JavaScript | MDN – подробное руководство MDN по корректному кодированию URL в JavaScript.
  4. html – Можно ли использовать пробелы в URL? – Stack Overflow – обсуждение вопроса о пробелах в URL на Stack Overflow.
  5. Процентное кодирование – Википедия – обзор процентного кодирования, включая правила применения для пробелов.
  6. HTML Standard – раздел в спецификации HTML5 от WHATWG, посвященный URL, описывающий стандарты применения URL.
  7. Что такое кодирование URL и как оно работает? | URLEncoder – статья о применении и назначении кодирования URL с демонстрацией практических примеров и рекомендаций.