쿠키는 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
'development' 카테고리의 다른 글
| 내 시험판 응용 프로그램은 iTunes Connect에서 일주일 이상“처리 중”이었습니다. (0) | 2020.04.15 |
|---|---|
| 프로그래밍 방식으로 Android 소프트 키보드 숨기기 / 표시 (0) | 2020.04.15 |
| 포커스를받을 수있는 HTML 요소는 무엇입니까? (0) | 2020.04.15 |
| 타입 안전이란 무엇입니까? (0) | 2020.04.15 |
| dict에서 값 목록을 얻으려면 어떻게해야합니까? (0) | 2020.04.15 |