다른 명령
편집 요약 없음 |
편집 요약 없음 |
||
| 2번째 줄: | 2번째 줄: | ||
==개요== | ==개요== | ||
HTTP server와 같이 statless한 경우에는 특정 시점에 특정 변수들이 어떠한 값을 가지고 있는 지등에 대해서 저장하지 않는다. 하지만 stateless한 server도 특정 사용자에 대한 접근을 제한하기 위해서나 사용자의 신원에 따라 콘텐츠를 제공하고자 사용자가 누구인지 식별하고자 할 때가 있다. | |||
초기에는 이러한 목적을 수행하기 위해 client의 IP address를 추적하였다. 하지만 IP address는 동일한 device더라도 유동적이기 때문에 같은 device를 추적하는 것이 힘들다는 한계가 있다. 또한 개인정보보호법에 따라 IP address를 수집하는 것이 어려워 졌다. 이러한 상황에서 사용자를 추적하기 위한 목적으로 사용되는 것이 cookie이다.<ref>아직도 IP address를 추적하는 경우가 있다. 이는 주로 보안 목적으로 수집되여 server에 고의적으로 부하를 거는 사용자를 차단하기 위해 사용된다.</ref> | |||
==Four components of cookies== | |||
cookie를 구현하기 위해서는 다음 4가지 요소들이 있다. | |||
* HTTP response message의 cookie header line | |||
* HTTP request message의 cookie header line | |||
* 사용자의 end system에 저장되고 사용자의 browser가 관리하는 cookie file | |||
* 웹 사이트의 back-end database | |||
==Cookie Working Process== | |||
예를 들어, 준영이 항상 집의 PC에서 firefox를 이용하여 인터넷에 접속한다고 가정하자. 이때 Amazon.com에 처음으로 접속하여 Amazon 웹 server에 request message를 전송하면 server는 고유한 식별 번호를 생성하고 해당 번호로 indexing된 back-end database에 entry를 생성한다. 이후 Amazon 웹 서버는 준영의 browser에 Set-cookie: 헤더를 포함하는 response message를 보낸다. 예를 들어, header-line은 다음과 같을 수 있다. | |||
<pre> | |||
Set-cookie: 1678 | |||
</pre> | |||
준영의 browser가 HTTP response message를 받으면 Set-cookie header를 보고 이 정보를 cookie file에 추가한다. 해당 cookie file에는 server의 host 이름과 Set-cookie: header에 포함된 식별번호가 저장된다. 이후 준영이 Amozon 사이트에 계속 활동을 한다면 웹 페이지를 request할 때마다 browser는 cookie file을 참조해 Amazon 사이트에 대한 HTTP request message에 cookie header line을 포함하여 보낸다. 준영이 Amazon server에 보내는 각 HTTP request message는 다음과 같은 cookie header line을 포함한다. | |||
<pre> | |||
Cookie: 1678 | |||
</pre> | |||
이를 통해서 Amazon server는 준영이 Amazon server에서 활동한 내역들을 기록한다. Amazon server가 준영의 이름을 알고 있지는 않지만, 어떤 페이지를 어떤 순서로 언제 방문했는지 정확히 데이터베이스에 기록하고 있는 것이다. 이렇게 데이터베이스에 저장된 정보는 Amazon에 접속한 유저들에게 개인 맞춤 쇼핑, 로그인 저장 등의 기능을 제공하는데 사용한다. 만약 준영이 일주일 후에 다시 접속하더라도 데이터베이스에 기록된 정보는 여전히 사용자 맞춤 서비스를 제공하기 위해 사용된다. | |||
==각주== | ==각주== | ||
[[분류:컴퓨터 네트워크]] | [[분류:컴퓨터 네트워크]] | ||
2025년 3월 21일 (금) 12:17 판
상위 문서: Application Layer
개요
HTTP server와 같이 statless한 경우에는 특정 시점에 특정 변수들이 어떠한 값을 가지고 있는 지등에 대해서 저장하지 않는다. 하지만 stateless한 server도 특정 사용자에 대한 접근을 제한하기 위해서나 사용자의 신원에 따라 콘텐츠를 제공하고자 사용자가 누구인지 식별하고자 할 때가 있다.
초기에는 이러한 목적을 수행하기 위해 client의 IP address를 추적하였다. 하지만 IP address는 동일한 device더라도 유동적이기 때문에 같은 device를 추적하는 것이 힘들다는 한계가 있다. 또한 개인정보보호법에 따라 IP address를 수집하는 것이 어려워 졌다. 이러한 상황에서 사용자를 추적하기 위한 목적으로 사용되는 것이 cookie이다.[1]
Four components of cookies
cookie를 구현하기 위해서는 다음 4가지 요소들이 있다.
- HTTP response message의 cookie header line
- HTTP request message의 cookie header line
- 사용자의 end system에 저장되고 사용자의 browser가 관리하는 cookie file
- 웹 사이트의 back-end database
Cookie Working Process
예를 들어, 준영이 항상 집의 PC에서 firefox를 이용하여 인터넷에 접속한다고 가정하자. 이때 Amazon.com에 처음으로 접속하여 Amazon 웹 server에 request message를 전송하면 server는 고유한 식별 번호를 생성하고 해당 번호로 indexing된 back-end database에 entry를 생성한다. 이후 Amazon 웹 서버는 준영의 browser에 Set-cookie: 헤더를 포함하는 response message를 보낸다. 예를 들어, header-line은 다음과 같을 수 있다.
Set-cookie: 1678
준영의 browser가 HTTP response message를 받으면 Set-cookie header를 보고 이 정보를 cookie file에 추가한다. 해당 cookie file에는 server의 host 이름과 Set-cookie: header에 포함된 식별번호가 저장된다. 이후 준영이 Amozon 사이트에 계속 활동을 한다면 웹 페이지를 request할 때마다 browser는 cookie file을 참조해 Amazon 사이트에 대한 HTTP request message에 cookie header line을 포함하여 보낸다. 준영이 Amazon server에 보내는 각 HTTP request message는 다음과 같은 cookie header line을 포함한다.
Cookie: 1678
이를 통해서 Amazon server는 준영이 Amazon server에서 활동한 내역들을 기록한다. Amazon server가 준영의 이름을 알고 있지는 않지만, 어떤 페이지를 어떤 순서로 언제 방문했는지 정확히 데이터베이스에 기록하고 있는 것이다. 이렇게 데이터베이스에 저장된 정보는 Amazon에 접속한 유저들에게 개인 맞춤 쇼핑, 로그인 저장 등의 기능을 제공하는데 사용한다. 만약 준영이 일주일 후에 다시 접속하더라도 데이터베이스에 기록된 정보는 여전히 사용자 맞춤 서비스를 제공하기 위해 사용된다.
각주
- ↑ 아직도 IP address를 추적하는 경우가 있다. 이는 주로 보안 목적으로 수집되여 server에 고의적으로 부하를 거는 사용자를 차단하기 위해 사용된다.