과거 클라이언트 측에 정보 저장 시 쿠키를 주로 사용했으나 현재는 modern storage APIs (로컬, 세션스토리지, Index DB 등)를 사용하는것이 권장된다고 함, 모든 요청마다 쿠키가 함께 전송되기 때문에 성능 저하의 원인이 될 수 있기 때문
Set-Cookie: <쿠키이름>=<쿠키값>
HTTP/1.0 200 OK
Content-type: text/html
Set-Cookie: yummy_cookie=choco
Set-Cookie: tasty_cookie=strawberry
[page content]
GET /sample_page.html HTTP/1.1
Host: www.example.org
Cookie: yummy_cookie=choco; tasty_cookie=strawberry
Set-Cookie: id=adsda;Expires=Wed, 21 Oct 2015 07:28:00 GMT;
쿠키 만료시점 설정시, 만료 시점의 시간, 날짜는 서버가 아닌 클라이언트의 시간을 기준으로 함
Secure 쿠키는 HTTPS 프토토콜 상에서 암호화된 요청일 경우에만 전송
이런 특성에도 불구하고, 민감한 정보는 저장하면 안됨
본질적으로 쿠키는 안전하지 않고, 보안을 별도로 제공하지는 않기 때문
XSS 공격을 방지하기 위해 HttpOnly 쿠키는 Document.cookie API에 접근할 수 없음
Set-Cookie: id=asdsad; Expires=Wed, 21 Oct 2015 07:28:00 GMT; Secure; HttpOnly;
Domain 그리고 Path 는 쿠키의 스코프를 정의함 (어떤 URL을 쿠키가 보내야 하는지)Domain은 쿠키가 전송되게 될 호스트들을 명시.Domain=mozilla.org이 설정되면, 쿠키들은 developer.mozilla.org와 같은 서브도메인 상에 포함되게 됨.Path는 Cookie 헤더를 전송하기 위하여 요청되는 URL 내에 반드시 존재해야 하는 URL 경로 %x2F("/") 문자는 디렉티브 구분자로 해석되며 서브 디렉토리들과 잘 매치됨Path=/docs이 설정되면, 다음의 경로들은 모두 매치될 것/docs/docs/Web//docs/Web/HTTPSameSite 쿠키는 쿠키가 cross-site 요청과 함께 전송되지 않았음을 요구하게 만들어, cross-site 요청 위조 공격(CSRF)에 대해 어떤 보호 방법을 제공.새로운 쿠키들은 Document.cookie를 사용해 만들어질 수도 있으며, HttpOnly 플래그가 설정되지 않은 경우 기본의 쿠키들은 JavaScript로부터 잘 접근될 수 있음
document.cookie = "yummy_cookie=choco";
document.cookie = "tasty_cookie=strawberry";
console.log(document.cookie);
// logs "yummy_cookie=choco; tasty_cookie=strawberry"
document.cookie = "username=user123; max-age=86400; path=/; Secure";