根據RFC 2109,2965 cookie的值可以是HTTP令牌或帶引號的字符串,並且令牌不能包含非ASCII字符。爲什麼非法cookie由瀏覽器發送並由網絡服務器接收(rfc 2109,2965)?
- Cookie的RFC 2109和RFC2965
- HTTP的RFC 2068和2616令牌定義:http://tools.ietf.org/html/rfc2616#page-16
不過,我已經發現,Firefox瀏覽器(3.0.6)將餅乾UTF-8字符串原樣是 和我測試的三個Web服務器(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
和Apache,Nginx的lighttpd的和CGI HTTP_COOKIE
變量的原始響應:
wikipp=1234; wikipp_username=ארתיום
我怎麼錯過?根據Internet Official Protocol Standards (STD 1, RFC 5000),
這是互聯網。人們使用這些標準在usenet上阻止他人,而不是實施他們的軟件。 – jrockway 2010-05-23 04:11:10
@jrockway我會理解,如果這是一個Web服務器,但所有3最流行(Linux)的? – Artyom 2010-05-23 04:14:29