RFC 2109에 따르면 2965 쿠키 값은 HTTP 토큰 또는 인용 문자열 일 수 있으며 토큰에는 비 ASCII 문자를 포함 할 수 없습니다.왜 잘못된 쿠키가 브라우저에서 보내고 웹 서버에서 수신합니까 (rfc 2109, 2965)?
- 쿠키의 RFC 2109 및 RFC2965
- HTTP의 RFC 2068 및 2616 토큰 정의 : http://tools.ietf.org/html/rfc2616#page-16 그러나
나는 파이어 폭스 브라우저 (3.0.6)은 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=ארתיום
나는 무엇을 그리워 하는가?
인터넷입니다. 사람들은 소프트웨어를 구현하는 것이 아니라 유즈넷에 다른 사람을 불 태우기 위해 표준을 사용합니다. – jrockway
@jrockway 이것이 하나의 웹 서버이지만 3 개의 가장 인기있는 (Linux) 서버라면 모두 이해하겠습니까? – Artyom