서버와 브라우저가 기억하는 방법. session 과 cookie

Big Jay·2022년 8월 30일
0

네트워크

목록 보기
2/2

stateless

서버로 가는 모든 요청이 이전의 요청들과 독립적으로 다뤄진다. 요청에 대한 응답이 끝나게 되면 서버는 유저가 누군지 잊어버리게 된다. 즉 요청할때마다 서버에 유저 정보를 알려주고 거기에 맞는 응답을 받아야한다. 매번

session

server와 clinet간의 어떠한 활동을 했는지를 일정 기간 또는 브라우저가 종료 되었을 때까지 기억하는 memory, history 같다.
작동 하려면 백엔드와 브라우저가 서로에 대한 정보를 가지고 있어야 된다. session은 cookie를 통해 브라우저로 전송이 되어 저장된다.

서버가 사용자의 웹 브라우저에 전송하는 데이터로 브라우저는 쿠키를 저장해 두었다가 서버에 요청할 때 저장된 데이터를 함께 전달한다. 이는 stateless HTTP 프로토콜에서 상태 정보를 기억시켜주기 때문이다.

  • 세션 관리(Session management)
    서버에 저장해야 할 로그인, 장바구니, 점수 등의 정보 관리

  • 개인화(Personalization)
    사용자 선호, 테마 등의 세팅

  • 트래킹(Tracking)
    사용자 행동을 기록하고 분석하는 용도

  • 세션 쿠키는 현재 세션이 끝날 때 삭제된다. 브라우저는 시점을 정의하며, 어떤 브라우저들은 재시작할 때 세션을 복원해 세션 쿠키가 무기한 존재할 수 있도록 한다.
  • 영속적인 쿠키는 Expires속성에 명시된 날짜에 삭제되거나, Max-Age속성에 명시된 기간 후에 삭제된다.

secure와 HttpOnly

  • Secure
    HTTP 프로토콜 상에서 암호화된(encrypted) 요청일 경우에만 전송된다. secure라도 민감한 정보는 절대 쿠키에 저장되면 안된다. 본질적으로 안전하지 않으며 실질적인 보안을 제공하지 않기 때문
  • HttpOnly
    httpOnly 쿠키는 javascript의 document.cookie API에 접근할 수 없으며, 서버에 전송되기만 한다. 이는 Cross-site 스크립트(XSS)공격을 방지한다.

참조

profile
안녕하세요.

0개의 댓글