
#개발용어 #web
[!note]
Cookie는 웹사이트를 방문할 때 사용자의 컴퓨터에 저장되는 작은 텍스트 파일이야.
쉽게 말해, 브라우저가 사용자의 정보를 저장하는 작은 메모리 조각이지
[!note]
쿠키가 필요한 이유는, HTTP의 무상태성 Statelessness 때문이다.서버는 매 요청을 새로운 요청으로 간주해서, 네가 방금 전에 로그인을 했는지, 아니면 어떤 페이지를 봤는지 전혀 기억하지 못해. 만약 무상태성만 있다면, 다음 페이지로 넘어갈 때마다 "네가 김유진이야?"라고 다시 물어봐야 하는 문제가 생기지.
이때 쿠키가 등장해. 서버는 로그인에 성공한 사용자에게 '너는 김유진이다' 라는 정보가 담긴 쿠키를 넘겨줘. 브라우저는 이 쿠키를 저장했다가, 같은 서버에 요청을 보낼 때마다 이 '신분증' 을 함께 보내줘. 덕분에 서버는 매번 로그인 정보를 받지 않아도 사용자를 식별할 수 있는 거야.
주로 다음과 같은 용도로 사용돼.
Expires , Max-Age [^1] 를 설정안함Expires 혹은 Max-Age 가 같이 설정되는 쿠키SESSION=61f39beb-0a39-4705-8f8e-8738caf6a162; Domain=.dooray.com; Path=/; Secure; HttpOnly; SameSite=None
Name : 세션 키 이름Value : 세션 값Domain : 어느 도메인에서 쿠키를 사용할 수 있는지 지정Path : 어느 경로에서 쿠키를 사용할 수 있는지 지정 Set-Cookie: cart=items; Path=/shop
→ /shop, /shop/cart, /shop/payment에서 사용 가능
→ /profile에서는 사용 불가
Set-Cookie: session=abc; Path=/
→ 모든 경로에서 사용 가능
Expaires / Max-Age : 쿠키의 유효(만료)기간[^2]Set-Cookie: session=data; Expires=Wed, 31 Jul 2025 23:59:59 GMT
Set-Cookie: session=abc; Max-Age=3600 (1시간 후 만료)
Set-Cookie: remember=yes (브라우저 종료시 삭제)
HttpOnlySameSitehttps://developer.mozilla.org/ko/docs/Web/HTTP/Guides/Cookies
[^1]: 만료 시간을 의미
[^2]: Expires는 정확한 날짜를, Max-Age는 남은 시간을 지정함