본문 바로가기
Exam & Study

[쉬운설명] HTTP 쿠키(Cookie)에 대한 설명!!

by GoodDayDeveloper 2021. 11. 24.
반응형

안녕하세요. 오늘은 쿠키와 HTTP에서 어떻게 사용되는지에 대한 설명을 해보겠습니다.

쿠키란 클라이언트가 서버에서 받은 쿠키를 저장하고, HTTP 요청시 서버로 전달해주는 역할을 합니다.

HTTP에서는 set-Cookie로 표현되며 응답헤더에서 서버에서 클라이언트로 쿠키를 전달합니다.

아래와 같은 이미지 처럼 말이죠! 이제부터 쿠키에 대해 살펴보겠습니다.

 


 

우리가 사용하는 인터넷을 통신해주는 HTTP는 계속 연결되어 있지 않습니다.

만약에 제가 다음에서 '쿠키'검색을 하면

저는 다음 서버에 '쿠키'를 요청하게 되고 다음 서버에서 '쿠키'에 대한 정보만 주고 연결이 끊어집니다.

이것을 무상태(Stateless) 프로토콜이라고 합니다. 계속 연결되어 있지 않다는 뜻이죠.

 

쿠키를 사용하지 않는다는 가정에서 

제가 다시 요청하면 다음 서버에서는 이전 요청을 기억하지 못하면서

저와 다음 서버와는 서로 상태를 유지하지 않습니다.

예를 들면 다음에 로그인을 했는데, 페이지가 넘어갈때마다 계속 로그인이 되어 있지 않는 상태입니다.

즉, 쿠키가 없으면 페이지를 이동할때마다 계속 계속 로그인을 해줘야하는 경우가 발생됩니다.

 

그래서 쿠키를 사용한다는 가정이면

제가 다음에 로그인을 했다고 하면 다음서버에서는 set-Cookie로 정보를 담아 응답해줍니다.

그럼 웹 브라우저의 별도의 쿠키 저장소에 저장을 하게 되는거죠

그래서 다음 서버에 요청을 보낼때 쿠키 저장소를 한번 조회해줍니다.

그리고 cookie란 녀석에 로그인 정보를 같이 보내면서 다음 서버에 로그인이 되었다는 것을 확인시키는거죠!

 

흔히, 

  • 사용자 로그인 세션 관리 및 광고 정보 트래킹에 많이 사용됩니다.
  • 그리고 쿠키 정보는 서버에 전송되며 최소한의 정보만 사용합니다.
  • 웹 브라우저에 저장되기 때문에 보안에 민감한 데이터는 저장하면 안됩니다. (주민번호 등)

 


보안

 

Secure

쿠키는 http, https를 구분하지 않고 전송합니다.

만약 Secure를 적용하면 https인 경우에만 전송하게 됩니다.

 

HttpOnly

XSS 공격을 방지하며 자바스크립트에서 접근 불가(document.cookie)하게 됩니다.

HTTP 전송에만 사용가능합니다.

 

SameSite

XSRF 공격 방지하며, 요청 도메인과 쿠키에 설정된 도메인이 같은 경우만 쿠키 전송하게 됩니다.


속성

 

Expires : 만료일이 되면 쿠키를 삭제합니다. 

예 ) Set-Cookie: expires=Sat, 26-Dec-2020 04:39:21 GMT

 

max-age : 쿠키의 최대 시간을 나타냅니다. 0이나 마이너스로 나타내면 쿠키는 삭제됩니다.

예 ) Set-Cookie: max-age=3600 (3600초)

 

Domain : 명시한 도메인을 나타냅니다.

예 ) domain=.google.com;

 

path : 이 경로를 포함한 하위 경로 페이지만 쿠키가 접근됩니다. 일반적으로 루트(/)로 지정합니다.

예 ) path=/;

 

 

 


 

예시

 

아래 이미지와 같이 응답헤더에 set-cookie라는 녀석이 있습니다.

검색 날짜와 시간등의 정보가 있고 path로 경로를 볼 수 있습니다.

그리고 위에서 언급한 Secure / HttpOnly / SameSite의 보안정보등을 볼 수 있습니다.

 

반응형

댓글