Экранирование символов в URI
Victor Antonovich
v.antonovich at gmail.com
Wed May 27 12:45:02 MSD 2009
Всем добрый день!
Работая с nginx в качестве фронтенда к web java-приложению
(REST-контейнер Jersey внутри Tomcat), столкнулся со следующей
проблемой. Согласно документации, nginx обрабатывает URI, передаваемые
бэкенду, в том числе проводит (де)кодирование percent-encoded
символов. Однако, как выяснилось, часть символов, которые приходят
экранированными, nginx передает бэкенду без экранирования, например,
символ ` (обратный апостроф). REST-контейнеру это категорически не
нравится, и он сразу отдает ошибку 500.
Согласно RFC 2396 (http://www.ietf.org/rfc/rfc2396.txt, пункт 2.4.3.
"Excluded US-ASCII Characters"), данный символ и ряд других должны
экранироваться через percent-encoding, но nginx, похоже, этого не
делает (по крайней мере, в коде функции ngx_escape_uri() эти
unwise-символы забиты в маски как неэкранируемые).
Вопрос, соответственно, простой - это баг или фича? :)
Виктор.
More information about the nginx-ru
mailing list