웹에서 데이터를 저장하는 방법 : 쿠키

김성환·2024년 3월 12일
0

CS(ComputerScience)

목록 보기
4/7

HTTP는 Connectionless, Stateless 특성을 가집니다.

Connectionless(비연결성)

클라이언트가 서버에게 요청을 한 후 응답을 받으면 연결이 끊깁니다.
클라이언트와 서버가 연결되어있지 않아 리소스가 계속 사용되지 않고 일회성으로 발생합니다.
이러한 특징때문에 매번 요청에 대해 새로운 연결을 해야하므로 '오버헤드(처리를 위해 들어가는 간접적인 처리시간&메모리)'가 발생하는 단점이 생깁니다.

Stateless(무상태)

상태를 가지고 있지 않습니다.
서버는 클라이언트를 식별할 수 없기때문에 클라이언트의 상태 또한 알 수 없습니다.

상태를 기억하지못하는 점을 보완하기위해 상태를 기억하기위한 다양한 데이터 저장방식이 등장하게 됩니다. 오늘은 그저장 방법중하나인 쿠키에 관해 이야기를 해볼까 합니다.


쿠키

HTTP 쿠키(HTTP cookie)란 하이퍼 텍스트의 기록서(HTTP)의 일종으로서 인터넷 사용자가 어떠한 웹사이트를 방문할 경우 사용자의 웹 브라우저를 통해 인터넷 사용자의 컴퓨터나 다른 기기에 설치되는 작은 기록 정보 파일을 일컫는다.

위키피디아에 나오는 쿠기의 정의 입니다. 쿠키는 사용자의 브라우저에 저장이됩니다. 이는 큰 장점이자 단점이됩니다. 서버의 DB나 메모리에 저장이 되지 않기 때문에 서버에 부담이 되지 않으며 사용자만의 설정을 저장할수있어 장점이됩니다. 그렇지만 이는 스파이웨어를 통해 쉽게 탈취될수있으며 추가 편집 삭제가 가능하기에 보안상으로 위험할수있습니다. 이러한 단점이 있기에 보안상 위험한 사용자의 게인정보나 계정에 관한 정보의 저장은 지양하고 해당 웹사이트의 환경설정(장바구니,검색내역,팝업)등을 저장하기 좋습니다.

쿠키는 무한정으로 저장할수있지는 않습니다 클라이언트는 최대 300개까지 저장할수있으며 하나의 도메인 당 20개의 값만 가질 수 있습니다. 각 쿠키는 최대 4KB 까지의 데이터를 저장할수있습니다. 해당 규칙또한 브라우저와 PC의 성능좋아지면 저장할수있는 쿠키또한 증가하였습니다. 또한 사용자인증 유효시간을 정할 수 있으므로 시간 내에는 브라우저가 종료되어도 쿠키가 유지됩니다.

쿠키는 Key Value 형태로 저장될수있으며 이름과 값 이외에도 만료 기간, 도메인, 플래그등의 데이터를 가지고 있습니다.

쿠키의 사용 원리

지금까지 쿠키가 어떻것인지 알아보았습니다. 그렇다면 쿠키가 실제로는 어떻게 사용 될까요?


이 그림처럼 쿠키는 응답을 통해 만들수있습니다.

HTTP/1.0 200 OK
Content-type: text/html
Set-Cookie: yummy_cookie=choco
Set-Cookie: tasty_cookie=strawberry
Set-Cookie: 쿠키이름=쿠키값; [옵션]

[page content]

이런식으로 Set-Cookie라는 헤더으로 브라우저에 저장이 되며

GET /sample_page.html HTTP/1.1
Host: www.example.org
Cookie: yummy_cookie=choco; tasty_cookie=strawberry
Cookie: 쿠키이름1=쿠키값1; 쿠키이름2=쿠키값2; ...

응답에서는 Cookie라는 헤더로 서버에 전송이 됩니다.

이방법 외에도 자바스크립트,php등 여러언어들로 쿠키를 접근하거나 사용할수도 있습니다.


reference
https://velog.io/@bambookim/Connectionless%EC%99%80-Stateless
https://ko.wikipedia.org/wiki/HTTP_%EC%BF%A0%ED%82%A4
https://developer.mozilla.org/ko/docs/Web/HTTP/Cookies

0개의 댓글

관련 채용 정보