IT STUDY LOG
[HTTP] 01. Cookie 본문
# 학습 목표
- 쿠키의 작동 원리를 이해할 수 있다
# 학습 내용
1. Cookie
- 개요
- 서버에서 클라이언트에 데이터를 저장하는 방법의 하나
- 서버와 클라이언트 양방향 전송
- 최초 서버에서 전송 시 : Set-Cookie 프로퍼티에 쿠키 담아 전송
- 이후 서버와 클라이언트 전송시 : Cookie 프로퍼티에 쿠키 담아 전송
- 특징
- 서버가 클라이언트에 데이터 저장 가능
- 서버가 클라이언트로부터 쿠키를 가져올 때는 특정 조건들이 만족할 때만 가능
- 쿠키 옵션
옵션 설명 Domain - 포트 및 서브 도메인 정보, 세부 경로를 포함하지 않음
(ex) http://www.localhost.com:3000/users/login의 경우 Domain은 localhost.com
- 해당 옵션이 설정되어있다면 쿠키 도메인 옵션과 서버 도메인이 일치해야지만 쿠키 전송Path - 서버가 라우팅할 때 사용하는 경로 (default : /)
(ex) http://www.localhost.com:3000/users/login의 경우 Path은 /users/login
- 해당 옵션이 설정되어있는 경우 쿠키 서버 전송 가능
(ex) Path가 /users/인 경우 경로가 /users/login/ 여도 전송 가능MaxAge or Expires - 쿠키의 유효 기간 관련 옵션
- MaxAge : 앞으로 몇 초간 쿠키가 유효한지
- Expires : 언제(Date 기준)까지 유효한지 지정
- 해당 옵션이 지정되면 지정된 기간 초과시 쿠키 소멸
- 해당 옵션이 없을 시 브라우저 탭이 종료되어야 쿠키 소멸Secure - 해당 옵션이 true로 지정되면 HTTPS 프로토콜에서만 쿠키 전송 HttpOnly - 해당 옵션이 true로 지정되면 자바스크립트 브라우저에서 쿠키에 접근이 불가능 SameSite - Cross-Origin 요청을 받은 경우 요청에서 사용한 메소드와 해당 옵션의 조합으로 서버의 쿠키 전송 여부를 결정
> Lax : Cross-Origin 요청이면 'GET' 메소드에 대해서만 쿠키를 전송 가능
> Strict : Cross-Origin이 아닌 same-site(요청 보낸 origin과 서버의 도메인이 같은 경우)인 경우에만 쿠키를 전송 가능
> None: 항상 쿠키를 보내줄 수 있으나 Secure 옵션 필요 - 쿠키를 이용한 상태 유지
- 쿠키에 담은 정보로 Stateless 한 인터넷 연결을 Stateful 하게 유지 가능
- 쿠키는 오랜 시간 동안 유지될 수 있고, 자바스크립트를 이용해서 쿠키에 접근할 수 있기 때문에 쿠키에 민감한 정보를 담는 것은 위험
- 인증정보를 탈취하여 서버에 요청을 보낸다면 서버는 누가 요청을 보낸 건지 상관하지 않고 인증된 유저의 요청으로 취급하기 때문에, 개인 유저 정보 같은 민감한 정보에 접근이 가능
'devops bootcamp 4 > 개발 및 배포' 카테고리의 다른 글
[HTTP] 03. 잘 설계된 HTTP API (REST API) (0) | 2023.03.22 |
---|---|
[HTTP] 02. HTTP 헤더 (0) | 2023.03.22 |
[(사전준비) 개발 환경 구축] 02. Docker 설치 (0) | 2023.03.22 |
[(사전준비) 개발 환경 구축] 01. Node.js 설치 (0) | 2023.03.22 |
[Git과 버전 관리 시스템] 03. Git Branch (0) | 2023.03.21 |
Comments