본문 바로가기

JavaScript/APIs

Request-Response Model

-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