Почему Недопустимые cookie, отправляют Браузером и полученный веб-серверами (rfc 2109, 2965)?

Согласно RFC 2109, 2965 значение cookie может быть или маркером HTTP или заключенной в кавычки строкой, и маркер не может включать символы неASCII.

  1. RFC 2109 и RFC2965 cookie
  2. Маркерное определение RFC 2068 и 2616 HTTP: http://tools.ietf.org/html/rfc2616#page-16

Однако я нашел, что браузер Firefox (3.0.6) отправляет cookie со строкой utf-8 как есть и тремя веб-серверами, которые я протестировал (apache2, lighttpd, nginx) передают эту строку как есть приложению.

Например, необработанный запрос от браузера:

$ nc -l -p 8080
GET /hello HTTP/1.1
Host: localhost:8080
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.0.9) Gecko/2009050519 Firefox/2.0.0.13 (Debian-3.0.6-1)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1255,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cookie: wikipp=1234; wikipp_username=ארתיום
Cache-Control: max-age=0

И необработанный ответ апача, nginx и lighttpd HTTP_COOKIE Переменная CGI:

wikipp=1234; wikipp_username=ארתיום

Что я пропускаю?

5
задан oers 25 January 2012 в 08:03
поделиться

1 ответ

RFC 2109 (февраль 1997 г.) устарел и был заменен на RFC 2965 (октябрь 2000 г.) в соответствии с Официальными стандартами протокола Интернета (STD). 1, RFC 5000) .

Возможно, вас заинтересует более свежий проект от 7 марта 2010 г. для изменения 2965.

Единственное определение токена в 2965:

неформально , последовательность неспециальных символов, отличных от пробелов

, я бы не стал считать, что весь UTF-8 запрещен этим определением - только символы, которые могут быть ошибочно приняты за управляющие / синтаксические символы.

3
ответ дан 14 December 2019 в 19:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: