development

쿠키는 HTTP 프로토콜에서 어떻게 전달됩니까?

big-blog 2020. 4. 15. 11:10
반응형

쿠키는 HTTP 프로토콜에서 어떻게 전달됩니까?


쿠키는 HTTP 프로토콜에서 어떻게 전달됩니까?


서버는 쿠키 헤더를 설정하기 위해 응답 헤더에 다음을 보냅니다.

Set-Cookie:이름 =

쿠키 세트가 있으면 브라우저는 요청 헤더에 다음을 보냅니다.

Cookie:이름 =

자세한 내용은 Wikipedia HTTP 쿠키 기사를 참조하십시오.


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


다른 답변에 쓰여진 것 외에도 쿠키 경로, 쿠키의 최대 수명, 보안 여부에 관계없이 Set-Cookie 응답 헤더로 전달되는 다른 세부 정보. 예를 들어 :

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


그러나 다음 HTTP 요청을 할 때 클라이언트가 이러한 세부 정보를 모두 서버로 다시 전달하지는 않습니다.

HttpOnly쿠키가 끝날 때 플래그를 설정 하여 쿠키가 httponly이고 스크립트에서 javascript 코드로 액세스 할 수 없음을 표시 할 수 있습니다. 세션 하이재킹과 같은 공격을 방지하는 데 도움이됩니다.

자세한 내용은 RFC 2109를 참조하십시오 . 또한 HTTP 쿠키가 설명하는 Nicholas C. Zakas의 기사를 살펴보십시오 .


예제 스크립트를 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 : // localhost : 1236 브라우저에서 보낸 쿠키 값이 표시됩니다

    [aaa @ bbbbbbbb] $ ./resp | nc -l -p 12346
    GET / HTTP / 1.1
    호스트 : xxx.xxx.xxx.xxx:12346
    연결 : 연결 유지
    캐시 제어 : max-age = 0
    수락 : text / html, application / xhtml + xml, application / xml; q = 0.9, image / webp, * / *; q = 0.8
    업그레이드 안전하지 않은 요청 : 1
    사용자 에이전트 : Mozilla / 5.0 (Windows NT 6.1) AppleWebKit / 537.36 (Gcko와 같은 KHTML) Chrome / 49.0.2623.112 Safari / 537.36
    수락 인코딩 : gzip, deflate, sdch
    수락 언어 : en-US, en; q = 0.8, ru; q = 0.6
    쿠키 : name = F

참고 URL : https://stackoverflow.com/questions/3467114/how-are-cookies-passed-in-the-http-protocol

반응형