쿠키(persistent cookie)
※ HTTP의 단방향성
HTTP는 사용자의 요청에 서버가 응답하여주는 단방향성의 특징을 가지고 있다.
이로 인해 서버에서는 각 사용자들의 정보를 식별할 수 없다.
그래서 서버에서는 쿠키를 각 사용자들에게 설정 시켜주고, 사용자들은 각 요청 시마다 자신의
쿠키 값을 첨부하여 서버에 요청하게 되며, 이를 통해 서버는 각 사용자들의 정보를 식별할
수 있다.
※ 서버가 사용자에게 쿠키값을 설정해주는 HTTP Response
서버에서 설정해준 쿠키 값은 사용자의 하드디스크에 저장된다.
하나의 쿠키의 용량은 최대 4KB이며, 한 사용자당 300개의 쿠키를 가질 수 있다.
즉, 최대 1.2MB의 용량을 가질 수 있다.
하드디스크에 저장된 쿠키 값은 서버에 요청 시마다 자신의 쿠키 값을 전송하여 서버에
자신의 정보를 식별할 수 있도록 정보를 전송한다.
※ 쿠키 정보를 담은 요청을 하는 과정
▣ 쿠키의 속성
서버가 사용자에게 쿠키 값을 설정해주는 Set-Cookie에는 몇 가지 속성이 포함된다.
Expires |
쿠키의 유효기간을 나타낸다. Expires의 값이 없을 시에는 현재 작업세션까지만 유효하다. |
Domain |
쿠키를 사용할 수 있는 도메인을 나타낸다. |
Path |
쿠키가 사용할 수 있는 URL경로를 나타낸다. |
secure |
HTTPS를 사용할때 이 속성이 설정한다. |
HttpOnly |
이 속성이 설정되면 스크립트가 쿠키의 접근을 제한하게 된다. |
세션 쿠키(Session Cookie)
우리가 흔히 부르는 “세션”은 세션 쿠키를 의미한다. 서로의 연결을 유지시켜준다는 의미이다.
세션이 없던 HTTP1.1버전 이전에는 서버와 사용자간의 연결이 이루어지면, 연결이 종료 될
때 까지 계속 연결되었다. 이 때 다수의 연결을 유지하는 과정에서 서버의 많은 리소스가
낭비되었다. HTTP1.1버전 이후 세션이 등장하였고, 서버는 많은 사용자와 연결을 맺을 수
있도록 되었다.
※ 세션 쿠키 생성 과정
사용자가 서버에 작업을 요청하면 서버에서는 사용자에 대한 세션토큰이 생성되며, 이를
응답과정에서 사용자의 웹 브라우저에 저장된다. 이 후 웹 브라우저의 세션토큰과 서버의
세션토큰의 매칭을 통해 사용자 정보를 식별한다.
※ 세션 토큰
세션 토큰은 서버와 사용자에게 각각 저장되며, 서로의 정보를 확인한다.
물론 세션이 종료되면 세션토큰은 사라지게 된다.
그리고 세션토큰을 담은 쿠키를 세션쿠키라고 한다.
서버에서 세션토큰을 생성할 때 서버의 웹 어플리케이션 플랫폼에 따라 다양한 이름으로 생성된다.
세션 토큰 |
특징 |
JSESSIONID |
자바플랫폼(JSP) |
ASPSESSIONID |
MS사 IIS서버(ASP) |
ASP.NET_SessionId |
MS사 ASP.NET |
PHPSESSID |
PHP |
'web' 카테고리의 다른 글
webhacking.kr을 통해 배우는 웹 해킹 기초 (0) | 2015.03.02 |
---|---|
Owasp Top 10 2013 (0) | 2015.01.21 |
인코딩과 인코딩 방식 (0) | 2014.07.07 |
HTTP란? (2) | 2014.06.04 |
웹 기초 지식 (0) | 2014.06.03 |