본문 바로가기

세션과 쿠키

by 청원뿔세포 2022. 6. 8.

12장 세션과 쿠키

  • HTTP의 비연결지향이라는 특성 덕분에 서버 리소스 낭비를 줄일 수 있지만 매 통신마다 새로 커넥션을 만들어야 하는 불편함이 있다.
  • 매 통신마다 클라이언트를 확인해야하는 불편함을 줄이고자 쿠키와 세션이 등장하였다.

쿠키

  • 클라이언트에 로컬에 파일로 저장되는 키와 값이 들어있는 데이터파일
  • 서버에 접속을 하고 끊을 때 클라이언트에 로컬에 쿠키를 남긴다.
  • 쿠키를 통해 클라이언트를 인식하고 클라이언트를 재인식하는 기존의 복잡한 과정을 생략한다.
  • 클라이언트의 로컬에 저장되기 때문에 보안에는 취약하다.
  • 유효 기간을 넉넉하게 주면 클라이언트가 따로 쿠키를 삭제하지 않는 한 브라우저가 종료되어도 오랫동안 인증이 유지된다.

차이점

세션

  • 쿠키와 마찬가지로 클라이언트를 재인식하는 기존의 복잡 과정을 생략하기 위해 만들어졌다.
  • 세션은 쿠키와 다르게 서버에 사용자 정보 파일을 저장하고 관리한다.
  • 사용자 정보 파일을 서버에 저장하기 때문에 쿠키보다 보안에 좋다.
  • 사용자가 많아질 수록 서버 메모리를 많이 차지하게 된다.
  • 서버에서 클라이언트를 위한 세션ID를 부여하고 브라우저를 종료할 때까지 인증 상태를 유지한다.
  • 브라우저가 종료되면 세션ID가 지워져 인증이 끊기게 된다.

쿠키 생성

  1. 클라이언트가 서버로 처음 접근
  2. 서버에서 응답받음
  3. 쿠키생성
  4. 응답에 쿠키를 포함하여 전송
  5. 클라이언트가 서버로부터 응답받음
  6. 클라이언트가 응답에 실려온 쿠키를 저장
  7. 클라이언트가 서버로 접근(쿠키를 갖고있다)
  8. 서버가 요청에 담긴 쿠키를 읽는다.
  9. 쿠키정보를 읽어 클라이언트의 이전상태에 대해 정보를 읽을 수 잇다.
  10. 응답에 변경된 쿠키를 포함하여 전송

세션 생성

  1. 클라이언트가 서버로 처음 접근
  2. 서버가 각 클라이언트 브라우저에 세션 ID 부여
  3. 세션ID 서버에 저장
  4. 클라이언트에 ID 전달
  5. 클라이언트가 응답에 실려온 ID를 저장
  6. 클라이언트가 서버로 접근(ID를 갖고있다)
  7. 클라이언트가 가져온 ID가 서버가 갖고있는 ID정보와 동일한지 판단
  8. 변경사항 서버에 저장

'' 카테고리의 다른 글

마진상쇄 - 제작중...  (0) 2022.09.19

댓글