목차
http 통신은
대표적인 stateless protocol(무상태 프로토콜)로서
요청간 사용자 데이터를 저장하는 수단을 제공하지 않는다
이는 http의 또 하나의 특징인 비연결성 때문인데
http는 클라이언트 요청에 서버가 응답을 마치면 연결을 계속 유지하지 않고
끊어 버린다
따라서, 상태를 저장하기 위한 수단으로 쿠키나 세션을 사용하게 된다
쿠키
클라이언트에 저장하기 위해 만들어진 "키 : 값" 형태의 묶음
흔히 브라우저에서 말하는 쿠키가 이 쿠키를 의미한다
기능적으로는 단순하게 "키 : 값" 형태로 문자열을 저장하고 있고
이를 통해 서버와 데이터를 주고 받거나 상태를 유지할 수 가 있다
http 헤더에 담아 주고 받으며
주요 특징은 아래와 같다
- 특징
- 문자열 값만 저장할 수 있다
- 기본은 브라우저의 생존 주기와 같지만 생존 주기를 설정하여 브라우저가 종료 되어도 살아 있을 수 있다
- 클라이언트의 요청시 특정 url에만 쿠키를 전송할 수 있도록 쿠키 별로 설정할 수 있다
세션
서버에서 사용자가 웹 서버에 접속해 있는 동안 사용자 정보를 저장하는 방법
서버에서 사용자 별로 쓸 수 있는 저장소 마련해두어
이를 통해 사용자의 접속이 종료 될 때까지 상태를 유지한다
네트워크 OSI 7계층에도 세션 계층이 있는데
이 계층이 송수신 메시지를 대화로서 유지해주는 것과 같이
여기서 세션도 마치 클라이언트와 서버가 계속 연결된 것과 같이 만들어준다
사용자 정보를 저장하여 사용하는 방법은 아래와 같다
- 사용자가 웹 서버에 최초 접속시 응답으로 사용자를 식별하기 위한 세션 id를 쿠키에
담아 클라이언트에 보낸다
- 사용자가 웹 서버 내에 다른 페이지를 탐색하거나 브라우저를 종료하지 않고
다시 웹 서버에 접속한다
- 브라우저는 세션 id를 담은 쿠키를 웹 서버에 전송하고 서버는 세션 id별로 구분된 저장소에서 해당 세션 id에 저장된 데이터를 꺼낸다
댓글