2010-08-12 7 views

답변

222

서버가 응답 헤더에 다음을 보내서 쿠키 필드를 설정합니다.

Set-Cookie:이름은=

쿠키 세트가있는 경우, 브라우저는 그 요청 헤더에 다음 보냅니다.

Cookie:이름=

자세한 내용은 위키 백과에서 HTTP Cookie 기사를 참조하십시오.

+0

쿠키가 GET/POST 동사에서만 작동하지만 CONNECT에서는 작동하지 않는 것이 사실입니까? – PerlDev

+5

@PerlDev [rfc2109] (http://tools.ietf.org/html/rfc2109)에서 GET/POST 이외의 다른 요청에는 사용할 수 없다는 것을 알 수는 없지만 브라우저 서버 구현은 그러한 경우에 구현하지 않을 수도 있습니다. – deinst

21

쿠키는 요청 (클라이언트 -> 서버)과 응답 (서버 -> 클라이언트)에서 HTTP 헤더로 전달됩니다.

+0

예 헤더에 전달되었으므로 (^ .. ^) –

+0

모든 요청에서 모든 쿠키가 사실상 전송됩니다 ? – BKSpurgeon

20

다른 답변, 쿠키 경로, 쿠키의 최대 보존 기간, 보안 여부, Set-Cookie 응답 헤더와 관련된 기타 세부 정보와 별도로 작성되었습니다.

Set-Cookie:이름= [; expires=날짜] [; domain=도메인] [; path=경로] [; secure]


그러나,이 모든 세부 정보 : 예를 들어 다음 HTTP 요청을 할 때 클라이언트가 서버에 다시 전달합니다.

쿠키의 끝 부분에 HttpOnly 플래그를 설정하여 쿠키가 httponly이고 자바 스크립트 코드로 스크립트에서 액세스 할 수 없어야 함을 나타낼 수 있습니다. 이렇게하면 세션 도용과 같은 공격을 방지하는 데 도움이됩니다.

자세한 내용은 RFC 2109을 참조하십시오. 또한 Nicholas C. Zakas의 기사, HTTP cookies explained을보십시오.

12

는 RESP 예 스크립트를 만들 :

#!/bin/bash 

http_code=200 
mime=text/html 

echo -e "HTTP/1.1 $http_code OK\r" 
echo "Content-type: $mime" 
echo 
echo "Set-Cookie: name=F" 

다음 실행하고 다음과 같이 실행합니다.

./resp | nc -l -p 12346 

열려있는 브라우저 및 URL을 검색 : HTTP : // www가 http://localhost:1236 당신은 내가이 Zakas하여이 하나 읽었습니다 브라우저

 
    [[email protected] ]$ ./resp | nc -l -p 12346 
    GET/HTTP/1.1 
    Host: xxx.xxx.xxx.xxx:12346 
    Connection: keep-alive 
    Cache-Control: max-age=0 
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 
    Upgrade-Insecure-Requests: 1 
    User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36 
    Accept-Encoding: gzip, deflate, sdch 
    Accept-Language: en-US,en;q=0.8,ru;q=0.6 
    Cookie: name=F 
+1

쿠키가 여러 개인 경우 어떻게해야합니까? 쉼표로 구분됩니까? –

+0

은 새 쿠키로 설정된다고 생각합니다. 쿠키 : 이름 = F 쿠키 : 이름 = A – Fix3r

관련 문제