-Client(browser)와 Server(WEB) 사이에서 데이터가 전송되는 과정을 설명한다.
-Request : 클라이언트에서 서버에 접근을 요청한다.
-Response : 서버에서 클라이언트가 요청한 데이터(of web Page or from web API)를 회신한다.
*HTTP & HTTPS : HyperText Transfer Protocol / HTTPS은 TLS or SSL를 사용하여 암호화한 HTTP이다.
1. DNS 조회를 통해 URL을 IP주소로 변환한다
-URL : (Protocol) + (Domain name) + (Resource)
*Protocol : HTTP or HTTPS
-IP : (Protocol) + (IP address) + (Port number)
*Domain -> IP address + Port number
*Port number : default 80 for HTTP and 443 for HTTPS
2. TCP/IP socket connection
-Communication protocol이라 부르며, 데이터 전송 방식을 처리한다.
-모든 데이터 전송이 완료될 때까지 유지된다.
-TCP(Transmission Control Protocol) : 데이터를 packet 단위의 아주 작은 덩어리로 쪼개고, 도착한 packets들을 원래 데이터로 재조립한다. packets은 제각각 다른 route를 통해 이동한다. 이를 통해 트래픽을 빠르게 처리함.
-IP(Internet Protocol) : 각 packet에 도착지를 알려준다.
3. 클라이언트에서 서버로 HTTP Request 메시지를 보낸다.
-Start line : HTTP method +Request target + HTTP version 로 구성
*HTTP method : 'GET', 'POST', 'PUT', 'PATCH' ...
*Request target : Resource (URL에서 도메인 다음에 오는 요소, 리소스가 없으면 웹페이지 접속 요청임)
-Headers : host, language 등의 정보를 담음
-Body : 'POST' 요청 시 sending data를 담음
4. 서버에서 클라이언트로 HTTP Response 메시지를 보낸다.
-Start line : HTTP version + Status code + Status message로 구성
*클라이언트로부터의 요청이 successful인지 아니면 failed인지 알려줌
*Status code + Status message : 200 + ok / 404 + not Found
-Headers : date, type, encoding 등의 정보를 담음
-Body : HTML (of web page) or JSON (from web API) 형식의 데이터를 담음
*한 번에 여러 request/response가 일어날 수 있다. 예를 들어 웹 페이지 접근 요청에 대해서 페이지 렌더링에 필요한 HTML, CSS, JS, images 등의 파일 정보를 각각 하나씩 처리한다.
'JavaScript > APIs' 카테고리의 다른 글
REST API (0) | 2022.08.09 |
---|---|
네트워크 기초 (0) | 2022.08.08 |
LocalStorage & SessionStorage (0) | 2022.07.31 |
쿠키, 세션, 토큰, JWT (0) | 2022.07.31 |