Веб-браузеры, как правило, делают все возможное для восстановления искаженных URL-адресов.
Давайте начнем с базового запроса Google.
http://www.google.com/search?q=myquery
В результате мой браузер (последняя сборка Chrome) запросил.
GET http://www.google.com/search?q=myquery HTTP / 1.1
Очевидно, вполне ожидаемое поведение.
Давайте попробуем поместить в микс неэкранированный пробел.
http://www.google.com/search?q=my запрос
GET http://www.google.com/search?q=my%20query HTTP / 1.1
Что если мы используем символ%? Поскольку за ним не следует допустимый код символа, браузер должен экранировать его до% 25
http://www.google.com/search?q=i всегда дают 100%
GET http://www.google.com/search?q=i%20always%20give%20100% HTTP / 1.1
Хрому не удалось избежать%!
Является ли подстановка пробелов единственным преобразованием URL-адресов, которое будет / ожидается выполнять обычный браузер? Существуют ли библиотеки для выполнения таких «преобразований» URL-адресов?