Cookie & Session

정은영·2022년 10월 9일
0

CS

목록 보기
5/18

client가 server에 요청하면 sever는 요청에 대한 처리를 한 후 client에 응답한다. 응답후 연결을 해제하는데 stateless라고 한다. http protocol의 특징이다.


stateless

  • 지속적인 연결로 인한 자원낭비를 줄이기 위해서 연결을 해제한다.

  • 그러나 client와 server가 연결 상태를 유지해야 하는 경우가 생긴다.

    • 로그인 정보 저장하기
  • 이 때 client 단위로 상태 정보를 유지해야 하는 경우 Cookie와 Session이 사용된다.




Cookie

  • 서버에서 사용자의 컴퓨터에 저장하는 정보 파일이다.
  • key와 value로 구성되고 String 형태로 이루어져 있다.
  • Browser 마다 저장되는 쿠키는 다르다.(서버에서는 Browser가 다르면 다른 사용자로 인식한다.)

Cookie의 동작 순서

  1. Client가 페이지를 요청한다.

  2. WAS는 Cookie를 생성한다.

  3. HTTP Header에 Cookie를 넣어 응답한다.

  4. Browser는 넘겨받은 Cookie를 PC에 저장하고, 다시 WAS가 요청할 때 요청과 함께 Cookie를 전송한다.

  5. Browser가 종료되어도 Cookie의 만료 기간이 남아 있다면 Client는 게속 보관한다.

  6. 동일 사이트 재방문시 Client의 PC에 해당 Cookie가 있는 경우, 요청 페이지와 함께 Cookie를 전송한다.


Cookie의 특징

  • 이름, 값, 만료일(저장 기간 설정), 경로 정보로 구성되어 있다.
  • 클라이언트에 총 300개의 쿠키를 저장할 수 있다.
  • 하나의 도메인 당 20개의 쿠키를 가질 수 있다.
  • 하나의 쿠키는 4KB까지 저장 가능하다.



Session

  • 방문자가 웹 서버에 접속해 있는 상태를 하나의 단위로 보고 그것을 세션이라고 한다.

  • WAS의 memory에 Object 형태로 저장된다.

  • memory가 허용하는 용량까지 제한 없이 저장 가능하다.

  • site내에서 화면을 이동해도 로그인이 풀리지 않고 유지되는 것은 session의 사용 예이다.


session의 동작 순서

  1. 클라이언트가 페이지를 요청한다.

  2. 서버는 접근한 클라이언트의 Request-Header 필드인 Cookie를 확인하여, 클라이언트가 해당 session-id를 보냈는지 확인한다.

  3. session-id가 존재하지 않는다면, 서버는 session-id를 생성해 클라이언트에게 돌려준다.

  4. 서버에서 클라이언트로 돌려준 session-id를 쿠키를 사용해 서버에 저장한다.

  5. 클라이언트는 재접속시, 이 쿠키를 이용하여 session-id값을 서버에 전달한다.


session의 특징

  • 웹 서버에 웹 컨테이너의 상태를 유지하기 위한 정보를 저장한다.

  • 웹 서버에 저장되는 쿠키이다.(=세션 쿠키)

  • 브라우저를 닫거나, 서버에서 세션을 삭제 했을 때만 삭제가 되므로 쿠키보다 비교적 보안이 좋다.

  • 저장 데이터에 제한이 없다.

  • 각 클라이언트 고유 Session ID를 부여한다.

  • Session ID로 클라이언트를 구분하여 각 클라이언트 요구에 맞는 서비스를 제공한다.




정리

CookieSession
저장위치Client의 컴퓨터Server의 memory
저장형식StringObject
만료시점쿠키 저장시 설정 (설정 없으면 브라우저 종료 시)정확한 시점 모름
리소스클라이언트의 리소스서버의 리소스
용량제한한 도메인 당 20개, 한 쿠키당 4KB제한없음

0개의 댓글