본문 바로가기

web

쿠키(Cookie)와 세션(Session)

쿠키(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