Cookie
Cookie란?
HTTP는 state를 가지고 있지 않아, user의 id나 정보를 읽을 수 없다. 그래서 콘텐츠 제공, 차단 등과 같은 서비스를 제공하지 못한다. 이러한 단점 때문에 HTTP는 state를 가지고 있는 Cookie를 사용한다. Cookie는 state가 있어 사용자 정보를 읽어와 사용자 식별, 콘텐츠 제공 등을 수행할 수 있게 된다.
Cookie의 종류
1. HTTP response message의 header line에 Cookie
2. HTTp request message의 header line에 Cookie
3. user의 host, user의 browser에 의해 관리되는 Cookie
4. 웹사이트 백엔드 데이터베이스 상에 있는 Cookie
이 4가지 종류가 어떻게 사용되어 지는지 아래 예시를 통해 알아보자.
Cookie 예시
client가 Amazon server에 접속하는 예시를 보자. 이 예시에서 Cookie의 state가 어떻게 유지되는지에 대해 주목하면서 봐야한다.
1. client가 Amazon server로 request msg를 보냄
2. Amazon server에서 user ID(1678)를 생성하고, 데이터베이스에 기입하고 response 데이터에 담아서 보냄. (response Cookie)
3. client는 자체 웹에서 amazon 1678이라는 Cookie 파일 생성 (user brower Cookie)
4. 다시 접속할때 Cookie가 있으므로 request에 Cookie 파일을 담아서 보냄. (request Cookie)
5. server는 Cookie가 있다는 신호를 받고, 데이터베이스에서 Client의 정보를 꺼내 보내줌. (back end database Cookie)
6. client는 지난번에 했던 행동들을 다시 확인 및 수행
요약하자면
- Client에 Cookie 파일이 없으면 server에서 user ID 만들고 response msg에 Cookie 파일에 담아 보내준다. 그리고 이 user ID는 백엔드 데이터베이스에 기입한다.
- Client에 Cookie 파일이 있으면 request msg에 Cookie 파일을 함께 보내고, server의 백엔드 데이터베이스에서 user의 state에 해당하는 response msg를 보내준다.
여기서 알아야 할 것은, HTTP가 Cookie(state)를 전달해준다고 해서 HTTP가 state를 가지고 있는 것은 아니다. state를 가지고 있는 것은 Cookie이고, HTTP는 양쪽의 end points에서 상호보관하고 있는 Cookie(state)를 전달만 해준다는 것을 기억해야 한다.
Cookie가 사용되는 곳
- 웹브라우저에 대한 로그인 정보 기억 (로그인했던 웹페이지에 다시 접속해보면 로그인 정보가 기억돼 있는 것)
- 온라인 몰에서의 구매목록 기능
- email 정보 기억
등등 state가 필요한 곳에서 사용된다.
(참고)
Cookie는 사용자 정보를 담고 있기 떄문에 privacy 이슈가 있다. 그래서 보통 서버쪽에서는 Cookie를 사용하는 데 있어 개인정보활용 동의가 수반된다.
[참고]
Computer Networking A Top-Down Approach 7-th Edition / Kurose, Ross / Pearson
'IT > 네트워크' 카테고리의 다른 글
[ 네트워크 ] Electronic mail (E-mail) (0) | 2020.05.04 |
---|---|
[ 네트워크 ] Web Caching (proxy server) (0) | 2020.05.04 |
[ 네트워크 ] Web and HTTP (0) | 2020.05.03 |
[ 네트워크 ] Processes Communicating (0) | 2020.05.03 |
[ 네트워크 ] client-server, peer to peer (0) | 2020.05.03 |
댓글