HTTP 완벽 가이드 11장 클라이언트 식별과 쿠키

DARTZ·2022년 7월 10일
1

HTTP 완벽 가이드

목록 보기
5/11

1. 개별 접촉

HTTP는 익명으로 사용하며 상태가 없고 요청과 응답으로 통신하는 프로토콜이다. 서버는 클라이언트가 보낸 요청을 처리하고 나서 그 응답을 클라이언트로 전송한다. 웹 서버는 요청을 보낸 사용자를 식별하거나 방문자가 보낸 연속적인 요청을 추적하기 위해 약간의 정보를 이용할 수 있다.

1) 개별 인사
2) 사용자 맞춤 추천
3) 저장된 사용자 정보
4) 세션 추적

2. HTTP 헤더

  • From 헤더: 사용자의 이메일 주소를 포함한다.
  • Referer 헤더: 사용자가 현재 페이지로 유입하게 한 웹페이지의 URL을 가르킨다.

3. 클라이언트 IP 주소

클라이언트 IP 주소로 사용자를 식별하는 방식은 여러 문제점을 가지고 있다. 어떤 사이트는 보안 기능으로 IP 주소를 사용하여 특정 IP 주소로부터 오는 사용자에게만 문서를 전달하기로 한다. 하지만 이런 방식은 인트라넷 같이 제한된 영역에서는 적절할 수 있지만, 인터넷에서는 IP 주소를 임의로 변경할 수 있기 때문에 문제가 발생할 수 있다. 또한, 클라이언트와 서버 사이에 있는 프락시도 문제를 발생시킬 수 있다.

4. 사용자 로그인

IP 주소로 사용자를 식별하려는 수동적인 방식보다, 웹 서버는 사용자 이름과 비밀번호로 인증할 것을 요구해서 사용자에게 명시적으로 식별 요청을 할 수 있다.

5. 뚱뚱한 URL

뚱뚱한 URL은 사이트를 브라우징하는 사용자를 식별하는 데 사용할 수 있다. 하지만 이 기술에는 여러 심각한 문제가 있다.

  • 못생긴 URL
  • 공유하지 못하는 URL
  • 캐시를 사용할 수 없음
  • 서버 부하 가중
  • 이탈
  • 세션 간 지속성의 부재

6. 쿠키

쿠키는 사용자를 식별하고 세션을 유지하는 방식 중에서 현재까지 가장 널리 사용하는 방식이다. 쿠키는 앞서 설명한 기술들이 가지고 있던 문제점들을 겪지는 않지만, 쿠키만으로 하기 힘든 일에는 앞서 설명한 기술들을 함께 사용하기도 한다.

1) 쿠키의 타입: 쿠키는 크게 세션 쿠키, 지속 쿠키 두 가지 타입으로 나눌 수 있다. 세션 쿠키는 사용자가 사이트를 탐색할 때, 관련한 설정과 선호 사항들을 저장하는 임시 쿠키이다. 지속 쿠키는 디스크에 저장되어, 브라우저를 닫거나 컴퓨터를 재시작하더라도 남아있다. 지속 쿠키는 사용자가 주기적으로 방문하는 사이트에 대한 설정 정보나 로그인 이름을 유지하려고 한다.

2) 쿠키는 어떻게 동작하는가: 사용자가 웹 사이트에 방문하면, 웹 사이트는 서버가 사용자에게 붙인 모든 쿠키를 읽을 수 있다.

3) 쿠키 상자: 클라이언트 측 상태: 쿠키의 기본적인 발상은 브라우저가 서버 관련 정보를 저장하고, 사용자가 해당 서버에 접근할 때마다 그 정보를 함께 전송하게 하는 것이다.

  • 구글 크롬 쿠키
  • creation_utc
  • host_key
  • name
  • value
  • path
  • epire_utc
  • secure
  • 마이크로소프트 인터넷 익스플로러 쿠키

4) 사이트마다 각기 다른 쿠키들

브라우저는 수백 수천 개의 쿠키를 가지고 있을 수 있지만, 그렇다고 브라우저가 쿠키 전부를 모든 사이트에 보내지 않는다. 브라우저는 보통 각 사이트에 두 개 혹은 세 개의 쿠키만을 보낸다.

  • 쿠키 Domain 속성
    서버는 쿠키를 생성할 때 Set-Cookie 응답 헤더에 Domain 속성을 기술해서 어떤 사이트가 그 쿠키를 읽을 수 있는지 제어할 수 있다.

  • 쿠키 Path 속성

웹 사이트 일부에만 쿠키를 적용할 수도 있다. URL 경로의 앞부분을 가르키는 Path 속성을 기술해서 해당 경로에 속하는 페이지에만 쿠키를 전달한다.

5) 쿠키의 구성요소

RFC 2965는 현재 2011년에 나온 RFC 6265 "HTTP State Management Mechanism"에 의해 폐기되어 현재는 사용되지 않는 HISTORIC 상태다.

6) Version 0(넷스케이프)쿠키

7) Version 1 (RFC 2965) 쿠키

8) 쿠키와 세션 추적

캐시를 다루는 기본원칙

쿠키는 웹 사이트에 수차례 트랜잭션을 맏늘어내는 사용자를 추적하는 데 사용한다.

9) 쿠키와 캐싱

  • 캐시되지 말아야 할 문서가 있다면 표시하라
  • Set-Cookie 헤더를 캐시 하는 것에 유의하라
  • Cookie 헤더를 가지고 있는 요청을 주의하라

10) 쿠키, 보안 그리고 개인정보

쿠키를 사용하지 않도록 비활성화시킬 수 있고, 로그 분석 같은 다른 방법으로 대체하는 것도 가능하므로, 그 자체가 보안상으로 엄청나게 위험한 것은 아니다. 하지만 개인 정보를 다루거나 사용자를 추적하는 기술은 잘 못된 의도로 사용될 수 있기 때문에 항상 조심하는 것이 좋다.

profile
사람들이 비용을 지불하고 사용할 만큼 가치를 주는 서비스를 만들고 싶습니다.

0개의 댓글