-
HTTP 완벽 가이드 11장 클라이언트 식별과 쿠키Web Dev/7. 네트워크 2021. 2. 21. 14:52728x90
- 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
- 디스크에 저장되어 브라우저를 닫거나 컴퓨터를 재시작하더라도 남아있다. 지속 쿠키는 사용자가 주기적으로 방문하는 사이트에 대한 설정 정보나 로그인 이름을 유지하기 위해 사용한다
- session cookie
- 쿠키는 서버가 사용자에게 붙이는 스티커와 같다.
- 즉, 서버가 클라이언트의 접속 요청에 대한 응답에 set-cookie 헤더를 통해 클라이언트에 스티커를 붙이고, 클라이언트는 서버에 접속할때마다 이 cookies, 스티커들을 들고 접속해서 누군지 알리는 것이다.
- 브라우저는 쿠키정보를 저장할 책임이 있다.
- cookies vs local storage 참고 글
- 쿠키와 세션 추적
- 쿠키는 웹사이트에 수차례 트랜잭션을 만들어내는 사용자를 추적하는데 사용한다.
- HTTP 헤더사용
'Web Dev > 7. 네트워크' 카테고리의 다른 글
HTTP 완벽 가이드 13장 다이제스트 인증 (0) 2021.02.21 HTTP 완벽 가이드 12장 기본인증 (0) 2021.02.21 HTTP 완벽 가이드 10장 HTTP/2.0 (0) 2021.02.06 HTTP 완벽 가이드 9장 웹 로봇 (0) 2021.02.06 HTTP 완벽 가이드 8장 통합점 (0) 2021.01.30