Как пробел превращается в три символа адреса
В интернете адреса передают не как произвольный текст, а по правилам, где некоторые знаки имеют особое значение. Например, косая черта `/` разделяет части пути, вопросительный знак `?` отделяет от него параметры, а решётка `#` указывает на фрагмент страницы. Обычный пробел не входит в допустимый набор знаков URL: его нельзя надёжно отличить от разделителя или случайного пробела, добавленного при копировании.
Поэтому браузер использует процентное кодирование: знак `%` и две шестнадцатеричные цифры обозначают конкретный байт. У пробела код 20 в шестнадцатеричной системе, отсюда запись `%20`. Получатель адреса может восстановить исходный знак, декодировав эту последовательность там, где она является частью текста.
Почему иногда встречается плюс
В адресах с параметрами, например в строке поиска после `?`, пробел порой записывают как `+`. Это традиция одного из форматов передачи данных веб-формы, а не универсальное правило URL. Если буквально заменить `%20` на плюс в любом месте, результат может измениться: сервер способен воспринять `+` как сам знак плюса.
И другие специальные символы требуют осторожности. Если внутри значения параметра нужен символ `&`, его кодируют, иначе он может быть принят за границу между параметрами. Так кодирование сохраняет смысл текста, не позволяя ему случайно менять структуру адреса. Поэтому необычная на вид последовательность `%20` — не ошибка и не часть названия страницы, а способ передать пробел так, чтобы программы не спутали его с разметкой адреса.






