Какие специальные символы безопасны для использования в URL?
Какие специальные символы безопасны для использования в URL?
Ответы:
Безопасными символами являются az, AZ, 0-9 и _ - (подчеркивание и минус), которые помимо зарезервированных символов используются для параметров.
Другие персонажи будут давать проблемы в некоторой степени. пример: если один параметр является массивом, ?param=array[content]
то есть будет отображать URL-адрес с закодированными в квадратных скобках URL-адресами, которые выглядят уродливо и невозможно продиктовать.
Но проблема не только в том, что это некрасиво. Допустим, у вас есть jpg с символом рядом с более безопасным, часто браузер не сможет загрузить его, получив 404. Это проблема старых браузеров и некоторых мобильных браузеров.
Как это проверить?
У меня есть входящая почта с 14000 электронными письмами, подтверждающими мою точку зрения.
Следующие символы имеют особое значение в компоненте пути вашего URL (компонент пути - это все, что находится перед символом «?»):
";" | "/" | "?"
В дополнение к этому, следующие символы имеют специальное значение в части запроса вашего URL (все после '?'). Поэтому, если они после «?» вам нужно убежать от них
":" | "@" | "&" | "=" | "+" | "$" | ","
Для более подробного объяснения см. RFC .
Ответы здесь хорошие, но, думаю, стоит упомянуть еще одно исключение - неанглийские символы. Ссылка на этот вопрос SF здесь , такие символы, как ñ (как в Español), вполне законны, ЕСЛИ они правильно закодированы в вашем DNS.
Вы должны использовать Punycode в DNS, чтобы разрешить их в современных браузерах (запись для español есть xn--espaol-zwa
), но теперь они совершенно безопасны для использования в доменных именах, так как их легко набирать и не говорящим по-английски. ,