<HTTP>쿠키

eunsiver·2023년 2월 17일
0

HTTP

목록 보기
1/2

쿠키

웹 서버가 웹 브라우저에게 보내어 저장했다가 서버가 부가적인 요청이 있을 때 다시 서버로 보내주는 문자열 정보

웹 페이지 방문 시 방문 기록 등 브라우저에서의 정보들이 저장된 텍스트 파일

  • Set-Cookie: 서버에서 클라이언트로 쿠키 전달(응답)
  • Cookie: 클라이언트가 서버에서 받은 쿠키를 저장하고, HTTP 요청시 서버로 전달

처음 시작 페이지


홍길동이란 유저가 로그인을 했을 경우


안녕하세요 홍길동을 기대했지만 서버는 안녕하세요 손님 이라고 한다.

서버 입장에서 로그인한 사용자인지 구분할 수 있는 방법이 없기 때문데


Stateless

  • HTTP는 무상태(stateless) 프로토콜이다.
  • 클라이언트와 서버가 요청과 응답을 주고 받으면 연결이 끊어진다.
  • 클라이언트가 다시 요청하면 서버는 이전 요청을 기억하지 못한다.
  • 클라이언트와 서버는 서로 상태를 유지하지 않는다.

해결방법: 모든 요청에 사용자 정보 포함(쿠키 미사용)

문제점: 모든 요청 정보를 넘기는 문제

  • 모든 요청에 사용자 정보가 포함되도록 개발 해야함
  • 브러우저를 완전히 종료하고 다시 열면?

해결 방법: 💥쿠키

  • 웹 브라우저가 홍길동으로 로그인을 하면 서버는 홍길동을 쿠키라는 곳에 넣어 응답을 한다.
  • 웹 브라우저 안에 있는 쿠키 저장소에 홍길동을 저장한다.

  • 서버에 요청을 할 때마다, 쿠키를 뒤져서 홍길동이란 정보를 HTTP 헤더에 담아서 요청을 한다.

  • 지정한 서버에 보낼 때 모든 요청에 쿠키를 보낸다.

하지만 모든 곳에 쿠키 정보를 보내면 보안문제 뿐만 아니라 여러 문제도 발생하여 제약하여 사용해야 한다.

쿠키

  • 사용처
    • 사용자 로그인 세션 관리(주 사용처)
    • 광고 정보 트래킹
  • 쿠키 정보는 항상 서버에 전송됨
    • 네트워크 트래픽 추가 유발
    • 최소한의 정보만 사용(세션 id, 인증 토큰)
    • 서버에 전송하지 않고, 웹 브라우저 내부에 데이터를 저장하고 싶으면 웹 스토리지(localStorage, sessionStorage) 참고
  • 주의!
    • 보안에 민감한 데이터는 저장하면 안됨(주민번호, 신용카드 번호 등등)

profile
Let's study!

0개의 댓글