ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • HTTP 완벽 가이드 11장 클라이언트 식별과 쿠키
    Web Dev/7. 네트워크 2021. 2. 21. 14:52
    728x90
    • HTTP 는 Stateless한데 요새 웹사이트들은 개별 사용자에 맞춤형 서비스를 제공하고 싶어한다. 그렇기 때문에 어떠한 방식으로 사이트를 개인화 시켜서 사용자한테 제공하려고 한다
    • 사용자를 식별하는 여러가지 방법
      • HTTP 헤더사용
        • HTTP 요청 헤더를 이용해서 사용자 정보를 전달할 수 잇다.
        • 헤더이름 헤더타입 설명
          From 요청 사용자의 이메일 주소(스팸때문에 잘 쓰이지 않음)
          User-Agent 요청 사용자의 브라우저
          Referer 요청 사용자가 현재 링크를 타고 온 근원 페이지
          Authorization 요청 사용자 이름과 비밀번호
          Client-ip 확장(요청) 클라이언트의 IP 주소
          X-Forwarded-For 확장(요청) 클라이언트의 IP 주소
          Cookie 확장(요청) 서버가 생성한 ID 라벨
      • 클라이언트 IP 주소 사용
        • 잘동작 안한다. 서버는 tcp 커넥션의 IP를 쉽게 알아낼수 있지만, 별로다. 예를들어 프락시 서버가 끼기만해도 프락스 서버의 IP 주소를 알게 되는데, 이걸로 뭘 할수가 없다. 
      • 사용자 로그인
        • 사용자가 직접 로그인하게 해서 식별하는 것이다.
        • www-authenticate 헤더: 사용자가 어떤 리소스를 요청하면 웹서버는 HTTP/1.o 401 Login Required 이런식의 응답을 돌려보낸다. 이때 www-authenticate 헤더도 포함시키면, 클라이언트는 응답을 받고 authenticate 헤더에 정보를 담아서 다시 요청한다.
      • 뚱뚱한 URL
        • 여러가지 이유로 문제가 있다. amazon에서 장을 볼려고 접속하면 그때 내 url에 식별자를 붙이는 방식이다. 근데 어쩌다가 내가 다른데 갔다가 다시 내가 장보던 정보를 보려고 하면 식별자가 다시 생성되니까, 그전 정보를 볼 수 없고 이런식이다. 
      • 쿠키
        • 가장 많이 쓰이는 방식이다. 
        • 쿠키는 앞의 방식들이 가진 문제는 겪지 않지만, 경우에 따라 앞의 방식을 같이 사용한다.
        • 현재 모든 브라우저에서 지원한다.
        • 쿠키의 종류
          • session cookie
            • 사용자가 사이트를 탐색할때, 관련한 설정과 선호 사항들을 저장하는 임시 쿠키
          • persistent cookie
            • 디스크에 저장되어 브라우저를 닫거나 컴퓨터를 재시작하더라도 남아있다. 지속 쿠키는 사용자가 주기적으로 방문하는 사이트에 대한 설정 정보나 로그인 이름을 유지하기 위해 사용한다
        • 쿠키는 서버가 사용자에게 붙이는 스티커와 같다.
        • 즉, 서버가 클라이언트의 접속 요청에 대한 응답에 set-cookie 헤더를 통해 클라이언트에 스티커를 붙이고, 클라이언트는 서버에 접속할때마다 이 cookies, 스티커들을 들고 접속해서 누군지 알리는 것이다.
        • 브라우저는 쿠키정보를 저장할 책임이 있다.
        • cookies vs local storage 참고
        • 쿠키와 세션 추적
          • 쿠키는 웹사이트에 수차례 트랜잭션을 만들어내는 사용자를 추적하는데 사용한다.

    댓글

Designed by Tistory.