Когда браузер делает запрос к серверу с некоторыми параметрами, которые передаются серверу (например http://www.google.com.ua/search?hl=ru&q=wasm+%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0&meta=) то некорторые параметры преобразовываются %D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0& это слово 'программа'. то есть можно сказать, что он преобразовавает русские буквы. На некоторых сайтах русские буквы передаются без преобразования (в качастве значений). Также интерестно следующее что символ '.' никогда не преобразовывается, а вот '(', ')' почему то преобразовываются (например http://www.google.com.ua/search?hl=ru&q=%D0%BF%D1%80%D0%BE%D0%B3.+%28+%29&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&meta= запрос был сделан на "прог. ( )" , см параметр q=, '('=%28, ')'=%29, а '.' не преобразовалась ) Зачем делаются эти преобразования, и по какому правилу?
Это преобразование называется URL Encoding и делается для того, чтобы передать по сети символы национальных алфавитов и спецсимволы без искажений. Для этого каждый "запрещенный" символ становится последовательностью %XX, где XX - шестнадцатеричный ASCII-код символа, либо %YYYY, где YYYY-шестнадцатеричный Unicode-код символа
1.Какие символы являются запрещенными? 2.От куда браузер знает что нужно передавать в %XX или %XXXX ? если ему говорит об этом сервер то каким образом (каким параметром)?