Почему в ссылках запрещены пробелы
Во первых если вы используете ссылки в тексте то при использовании пробелов вам будет сложно попределить где начало и где конец. Например если я хочу отправить вам ссылку на эту статью 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. Но если наша ссылка содержала проб