DevOps BootCamp/HTTP

Cookie

cloudmaster 2023. 3. 22. 11:35

- 쿠키 : 서버에서 클라이언트에 데이터를 저장하는 방법의 하나

 > 단순히 서버에서 클라이언트에 쿠키를 전송하는 것만 의미하지 않고 클라이언트에서 서버로 쿠키를 전송하는 것도 포함

  >단, 데이터를 저장한 이후 아무 때나 데이터를 가져올 수 없음. > 특정 조건을 충족해야 함

 

★ 쿠키 옵션

 1. Domain

 - www.google.com과 같은 서버에 접속할 수 있는 이름

   서브 도메인 : www

   도메인 : google.com

 > 도메인 정보가 존재한다면 클라이언트에서는 쿠키의 도메인 옵션과 서버의 도메인이 일치해야만 쿠키를 전송

 

2. Path

 : 라우팅할 때 사용하는 경로

 > path를 전부 만족하는 경우 요청하는 Path가 추가로 더 존재하더라도 쿠키를 서버에 전송

 

3. MaxAge or Expires

 : 쿠키가 유효한 기간을 정하는 옵션

 : Expires 은 MaxAge와 비슷

 : 지정된 시간, 날짜를 초과하게 되면 쿠키는 자동으로 파괴

 : 두 옵션이 모두 지정되지 않는 경우에는 브라우저의 탭을 닫아야만 쿠키가 제거

 

4. Secure

 : 쿠키를 전송해야 할 때 사용하는 프로토콜에 따른 쿠키 전송 여부를 결정

 : 옵션이 true로 설정된 경우, 'HTTPS' 프로토콜을 이용하여 통신하는 경우에만 쿠키를 전송

 

5. HttpOnly

 : 자바스크립트에서 브라우저의 쿠키에 접근 여부를 결정

 : 옵션이 true로 설정된 경우, 자바스크립트에서는 쿠키에 접근이 불가

 : 명시되지 않는 경우 기본으로 false

 : 옵션이 false인 경우 자바스크립트에서 쿠키에 접근이 가능하므로 'XSS' 공격에 취약

 

6. SameSite

 : Cross-Origin 요청을 받은 경우 요청에서 사용한 메소드와 해당 옵션의 조합으로 서버의 쿠키 전송 여부를 결정

 : Lax - Cross-Origin 요청이면 'GET' 메소드에 대해서만 쿠키를 전송

 : Strict - Cross-Origin이 아닌 same-site 인 경우에만 쿠키를 전송

 : None - 항상 쿠키를 보내줄 수 있습니다. 다만 쿠키 옵션 중 Secure 옵션이 필요

 

> 서버에서 클라이언트 : Set-Cookie라는 프로퍼티에 쿠키를 담아 쿠키를 전송,

  클라이언트 혹은 서버에서 쿠키를 전송해야 한다면 : 클라이언트는 헤더에 Cookie라는 프로퍼티에 쿠키를 담아 서버에 쿠키를 전송

 

 

'DevOps BootCamp > HTTP' 카테고리의 다른 글

HTTPS  (0) 2023.03.26
REST API  (0) 2023.03.22
HTTP 주요 헤더  (0) 2023.03.22