티스토리 뷰
2022 우아한스터디 "HTTP 완벽가이드"를 진행하면서
'HTTP 완벽 가이드' 책을 읽고, 글쓴이의 생각을 정리하는 글 입니다.
https://book.naver.com/bookdb/book_detail.nhn?bid=8509980
1. Stateless
HTTP를 이야기 하다 보면, 항상 나오는 말이 Stateless입니다. 한글로 표현하면 무상태 라고 합니다.
뭐 엄청난 의미가 있나 싶으지만, HTTP Connection 자체는 특별한 정보를 가지고 있지 않다는 것을 의미합니다.
(그렇기 때문에 메세지를 보낸 후에는 Connection이 끊기게 됩니다)
사용자가 오전에 했던 일을 서버는 오후에 기억하지 못합니다.
2. 무엇이 문제인가?
사실 문제는 없습니다. 사용자 입장에서는 필요할때만 사이트에 접속하고, 로그인을 하면 됩니다.
문제는 Server는 사용자의 행동을 추적하고 싶어합니다.
(광고라던가, 광고라던가, 광고라던가....)
(물론 사용자 입장에서도 이득이 없는거는 아닙니다 ㅎ)
때문에, HTTP의 Stateless를 극복하고 사용기록을 추적하기 위해서
2_1. 사용자 식별 관련 정보를 전달하는 HTTP헤더들
--> 이 정보들로는 명확하게 사용자 식별이 어려움
2_2. 클라이언트 IP주소 추적으로 알아낸 IP주소로 사용자를 식별
--> IP주소는 모바일 기기의 경우 주기적으로 별해서 추적하기 어려움 + 구형 Proxy의 경우 Client의 IP주소가 사라짐
2_3. 사용자 로그인 인증을 통한 사용자 식별
--> 매번 로그인 하기가 귀찮고, 로그인 안한 사용자는 추적 불가
2_4. URL에 식별자를 포함하는 기술인 fat URL
--> URL에 사용자를 식별할 수 있는 id를 추가시킴
단점으로 캐시 불가, URL공유 불가(개인정보 유출), 이탈할 경우 추적 불가
2_5. 식별 정보를 지속해서 유지하는 쿠키
등의 기술이 사용됩니다.
3. 쿠키
쿠키의 경우 Server에서 사용자의 행동 기록을 저장하고, 해당 Data에 대응되는 Cookie를 사용자에게 전달합니다.
그러면, 다음 접속시에 해당 Cookie를 Request header에 추가하여 서버에 전달하고
서버는 Cookie에 해당한는 과거 이력을 보고, 사용자 맞춤 정보를 설정하여 Response를 보내게 됩니다.
Client ---------------------------------> Server
처음에는 쿠기없이 Request
Client <--------------------------------- Server(Server DB에 Cookie에 해당하는 Data추가됨)
서버에서 Cookie를 만들고
해당 Cookie를 Client에게 Response
Client ---------------------------------> Server
Request를 보내기 전에
URL에 해당하는 Cookie가 있는지 확인 후
Request에 Cookie값이 포함
Client <--------------------------------- Server(DB에서 Cookie에 해당하는 Data를 찾아옴)
쿠키정보에 맞는 Data를 만들고
Client에게 Response
Example.
첫 Server의 Response에서 Set-cookie header를 포함
Set-cookie : user = "teusEE"; domain = "naver.com"
/*
Set-cookie : name=value [; expires=date] [; path=path] [; domain=domain] [; secure]
*/
그러면, Server에는 teusEE라는 Index에 해당하는 DB Record가 생성됨.
다음에, Client가 다시 naver에 접속하면 아래 Header가 추가된 Request를 보내게 됩니다.
Cookie:user="TeusEE"
/*
Cookie: name1=value1 [; name2=value2]...
*/
이런 쿠키는 Session Cookie(세션쿠키)와 Persistent Cookie(지속쿠키) 로 나뉩니다.
세션쿠키는 사용자가 브라우저를 닫으면 사라지고, 지속쿠키는 Set-Cookie를 할 때 정한 Expires, Max-Age에 따라 유지시간이 결정됩니다.
'네트워크 > HTTP' 카테고리의 다른 글
16. 인증2(다이제스트 인증) (0) | 2022.07.14 |
---|---|
15. 인증 (0) | 2022.07.13 |
13. 웹로봇 (0) | 2022.06.08 |
12. 게이트웨이 (0) | 2022.06.05 |
11. 캐시(2편) (0) | 2022.06.01 |
- Total
- Today
- Yesterday
- 알고리즘
- Sort알고리즘
- 분할정복
- heap
- 사칙연산
- AVX
- 코딩테스트
- SIMD
- 동적계획법
- 자료구조
- hash
- Python
- prime number
- C++
- 이분탐색
- 컴퓨터그래픽스
- 완전탐색 알고리즘
- GDC
- git
- 병렬처리
- stack
- Search알고리즘
- Greedy알고리즘
- 프로그래머스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |