Почему в ссылках запрещены пробелы

Во первых если вы используете ссылки в тексте то при использовании пробелов вам будет сложно попределить где начало и где конец. Например если я хочу отправить вам ссылку на эту статью http://pythonforbeginers.blogspot.com/2020/06/blog-post.html теперь допустим что вы хотите добавить пробел, и получится: http://pythonforbeginers.blogspot.com/2020/06/blog -post.html. Как теперь понять что после слова blog это не продолжение статьи, а ссылка?

Для этого существует url encoding, который превращает все небезопасные символы, например проблеы в специальный стандартный код. Например пробел превращается в %20, и можно спокойно определить что когда встретится пробел в ссылке, то ссылка закончилась и начался текст.

Так же по стандарту HTTP, пробелы означают разделители. Например если мы заходим на сайт google.com то наш браузер посылает такой запрос на IP сервера гугла:

GET / HTTP/1.1
Host: google.com

После / есть пробел в котором указана версия протокола http. Но если наша ссылка содержала пробел то сервер не смог бы определить, на какую страницу вы хотите зайти или вы хотите указать версию http протокола.

Комментарии

Популярные сообщения из этого блога

DOS атака при помощи Python

Ведем телеграм канал через питон

Django migrations не видит изменения моделей