본문 바로가기

웹개발/HTTP

HTTP 쿠키

 

쿠키란? 

쿠키는 브라우저에서 저장되는 작은 크기의 문자열로 HTTP 프로토콜의 일부이다. 

쿠키는 주로 웹 서버에 의해 만들어지고 서버가 HTTP 응답 헤더로 내용을 전달하면 브라우저는 이 내용을 자체적으로 브라우저에 저장한다.

 

 

 

 

 

쿠키의 쓰임새

쿠키는 클라이언트 식별과 같은 인증에 가장 많이 쓰인다. 

사용자가 로그인하면 서버는 HTTP 응답 헤더의 Set-Cookie에 담긴 세션 식별자 정보를 사용해 쿠키를 설정한다. 사용자가 동일한 도메인에 접속하려 하면 브라우저는 HTTP Cookie 헤더에 인증 정보가 담긴 고윳값(세션 식별자)을 함께 실어 서버에 요청한다. 서버는 브라우저가 보낸 요청 헤더의 세션 식별자를 읽어 사용자를 식별한다. 

 

 

 

 


 

document.cookie 

document.cookie를 이용하면 브라우저에서도 쿠키에 접근이 가능하다. 

 

쿠키 읽기

document.cookie는 name=value 쌍으로 구성 돼 있고 각 쌍은 ;로 구분한다. 

 

쿠키 쓰기 

document.cookie에 직접 값을 쓸 수 있다.  값을 할당하면 브라우저는 이 값을 받아 해당 쿠키만을 경신한다. 즉 모든 쿠키를 덮어쓰는 것이 아닌 명시된 쿠키의 값만을 갱신한다. 쿠키의 이름과 값은 특별한 제약 없이 모든 글자가 허용되지만 형식의 유효성을 일관성 있게 유지하기 위해 내장 함수 encodeURIComponent를 반드시 사용해 주는 것이 좋다. 

 

쿠키 옵션들 

Expires & Max-Age

쿠키 유효 날짜나 수명 옵션이 지정되어 있지 않으면 브라우저가 닫힐 때 쿠키도 함께 삭제된다.  브라우저는 설정된 유효 나라까지 쿠키를 유지하다가 해당 일자가 도달하면 쿠키를 자동으로 삭제한다.

Secure

이 옵션을 사용하면 https에서만 쿠키가 전송된다. 쿠키에 민감한 내용이 저장되어 있어 암호화되지 않은 HTTP 연결을 통해 전달되는 걸 원치 않을 때 사용한다. 

HttpOnly

이 옵션을 사용하면 자바스크립트에서 쿠키에 접근할 수 없다. 쿠키로 정보를 읽을 수 없기 때문에 쿠키를 보호 할 수 있습니다. 

Domain

도메인을 적어주면 도메인이 일치하는 요청에서만 쿠키가 전송된다. 도메인 옵션을 설정하지 않았다면 쿠키를 설정한 도메인에서만 쿠키에 접근이 가능하다.

Path

이 경로나 이 경로의 하위 경로에 있는 페이지만 쿠키에 접근 할 수 있다. 절대 경로여야 하고 기본값은 현재 경로가 된다. 특별한 경우가 아니면 path=/로 설정해 웹사이트의 모든 페이지에서 쿠키에 접근할 수 있도록 하는 것이 좋다. 

Samesite

요청이 외부 사이트에서 일어날 때, 브라우저가 쿠키를 보내지 못하도록 막는다.

 

 

 

 

 

 

 

 

 

reference

ko.javascript.info/cookie#ref-75

www.zerocho.com/category/HTTP/post/5b594dd3c06fa2001b89feb9

'웹개발 > HTTP' 카테고리의 다른 글

URI - 리소스의 식별자  (0) 2021.07.10
REST 기초  (0) 2021.07.09
REST API - RESTful 한 API란 무엇일까?  (0) 2021.01.05
HTTP  (0) 2021.01.05