웹 브라우저 요청 흐름
(1) https://www.google.com/search?q=hello&hl=ko 검색
scheme://[userinfo@]host[:port][/path][?query][#fragment] | ||||||
scheme | userinfo | host | port | path | query | fragment |
https | www.google.com | (https→443) | /search | q=hello&hl=ko | ||
https://www.google.com/search?q=hello&hl=ko |
(2) host를 DNS에 조회하여 IP 알아낸다
*DNS = 도메인 네임 시스템 ( 전화번호부 느낌 )
도메인 명을 IP주소로 변환 ( google.com → 200.200.200.2 )
(3) port는 https니까 443
(4) HTTP 요청 메시지 생성
GET /search?q=hello&hl=ko HTTP/1.1 Host: http://www.google.com |
(5) SOCKET 라이브러리를 통해 TCP 3 way handshake로 TCP/IP 연결 (클라이언트&서버 가상 연결)
(6) TCP/IP 패킷 생성
*출발지PORT, 목적지PORT, HTTP 메세지 등 ...으로 구성
(7) 데이터 전송
(8) 수많은 노드를 거쳐 ... 구글 서버에 도착
(9) 패킷을 벗겨 query parameter로 확인
(10) HTTP 응답 메시지 생성함
HTTP/1.1 200 OK Content-Type: text/html;charset=UTF-8 Content-Length: 1234 <html><body>어쩌구</body></html> |
(11) TCP/IP 패킷 생성
*출발지PORT, 목적지PORT, HTTP 메세지 등 ...으로 구성
(12) 웹 브라우저로 전송
(13) 결과 확인
<html><body>어쩌구</body></html>
참고 강의 : https://taylog.tistory.com/203
'🧠 저장 > Http' 카테고리의 다른 글
HTTP 상태코드 간단 정리 (0) | 2024.02.20 |
---|---|
HTTP API 설계 개념 간단 정리 (0) | 2024.02.17 |
HTTP 메서드 종류, 속성 간단 정리 (0) | 2024.02.14 |
HTTP 특징, 구조 간단 정리 (0) | 2024.02.11 |
IP, TCP, UDP, URI 간단 정리 (0) | 2024.02.05 |