본문 바로가기

옥탑방주인/네트워크

Cookies(유저와 서버간의 소통)

 HTTP 서버는 상태가 없다. 이것을 간단히 설명하자면 서버 디자인과 고성능 웹서버를 개발할수 있는 엔지니어는 천개이상의 TCP연결을 동시에 제어한다는 것을 의미한다. 그러나, 이것은 보통 웹사이트에서 유저를 식별할때만 바람직하다.

왜나하면 서버는 유저의 접속을 제한하는것을 원하거나 유저의 신원 같은 기능의 content를 전달해주길 원한다.

이러한 목적을 위해, HTTP는 Cookie를 사용한다. 오늘날의 대부분 상업용의 웹사이트(e.g, eBay, amazon...etc)들은 쿠키를 사용한다.


 Cookie는 4개의 컴포넌트를 갖고있다 

1.  HTTP 메세지의 반응에서의 cookie header line.

2. HTTP 메세지 요청에서의 cookie header line.

3. 쿠키파일은 유저의 종단시스템(end-system) 과 유저의 브라우저로부터의 제어를 지속한다.(검색 기록이 남는것, 로그인정보가 남는것 등등..)

4. Web site에서의 back-end 데이터베이스.



Set-cookie: 헤더. 브라우저가 관리하는 특수 쿠키파일에 행을 추가한다. 이 행(line)은 서버의 호스트네임과 Set-cookie에서의 id를 포함한다(첫번째 아마존에 접속해있을때 이미 쿠키파일은 설정되있다) .

계속해서 웹브라우저로 옥션에 접속하려고 하면 cookie header행은 HTTP request에서 id number(e.g, action : 2000)을 포함시킨다. 아마존은 쿠키를 쇼핑카트 서비스에 제공하고있다. 예를들면 내가 쇼핑카트에 장바구니 담기를 누른 후 모르고 웹 브라우저를 닫았는데도, 다시 재접속을 하니 내가 장바구니에 담은 그대로 남아있다던지..


위에서 계속 언급한것처럼 쿠키는 유저를 식별하는데 사용할 수 있다. 유저가 처음 사이트를 방문했을때, 유저는 유저id를 제공할수 있다. 계속해서 세션이 진행되는 동안, 브라우저는 서버에서 쿠키헤더를 전달하고, 그렇게 함으로써 서버에게 유저를 식별시킨다. 따라서 쿠키를 사용하여 stateless HTTP의 맨 위에 사용자 세션계층을 생성할 수 있다.

'옥탑방주인 > 네트워크' 카테고리의 다른 글

DNS(domain name system)란 무엇일까?  (0) 2017.01.06
프록시 서버(Web Caching)  (0) 2017.01.03
TCP  (0) 2016.12.30
UDP  (0) 2016.12.29
Securing TCP  (0) 2016.12.29