상태정보

oyeon·2021년 2월 5일
0
post-custom-banner

웹에서의 상태 유지 기술

HTTP 프로토콜은 상태 유지가 안되는 프로토콜이다.

  • 이전에 무엇을 했고, 지금 무엇을 했는지에 대한 정보를 갖고 있지 않음
  • 웹 브라우저(클라이언트)의 요청에 대한 응답을 하고 나면 해당 클라이언트와의 연결을 지속하지 않음

상태 유지를 위해 Cookie와 Session 기술이 등장

쿠키(Cookie) & 세션(Session)

  • 사용자 컴퓨터에 저장
  • 저장된 정보를 다른 사람 또는 시스템이 볼 수 있는 단점
  • 유효시간이 지나면 사라짐

Session

  • 서버에 저장
  • 서버가 종료되거나 유효시간이 지나면 사라짐
  1. 클라이언트가 서버에게 요청을 보냄
  2. 유지해야 할 정보가 있다면 서버는 유지할 정보를 갖고 쿠키를 생성 (쿠키는 이름과 값으로 구성, 유지 시간등 정보를 가짐)
  3. 만들어진 쿠키는 반드시 응답결과에 포함되어서 클라이언트에 보내진다.
  4. 만들어진 쿠키는 클라이언트가 갖고 있게 된다. 갖고있는 쿠키를 항상 요청할 때 포함시켜서 서버에 보낸다.
  5. 서버는 내가 만들어준 쿠키가 있나 확인하고, 있으면 '이 사용자가 전에 접속했던 사용자구나' 혹은 '이 사용자가 유지해야 되는 정보가 이것이구나' 알 수 있게 된다.

Session 동작 이해

  1. 클라이언트가 서버에게 요청을 보냄
  2. 유지해야 할 정보가 있다면 서버는 세션키를 만든다.
  3. 세션키를 이용한 저장소를 생성한다. 이 저장소에 유지해야할 정보를 저장한다.
  4. 세션키를 담은 쿠키 생성 ( ∵ 저장소만 만들어놓고 끝내면 다시 클라이언트가 요청했을 때, 클라이언트의 저장소가 어떤 곳인지 서버는 알아낼 길이 없다.)
  5. 쿠키를 클라이언트에게 보낸다.
  6. 클라이언트는 요청할 때마다 서버가 만들어준 쿠키를 요청시 함께 보낸다.
  7. 서버는 쿠키로부터 세션키를 얻어내고, 세션키에 해당하는 저장소를 찾아서 저장소에 들어있는 정보를 사용하거나 원하는 정보를 저장한다. 이때 세션의 정보를 담기 위해 생성하는 객체가 HttpSession이다.

생각해보기

무상태 프로토콜(stateless protocol) : HTTP, UDP, DNS
상태 프로토콜(stateful protocol) : FTP, Telnet

profile
Enjoy to study
post-custom-banner

0개의 댓글