본문 바로가기
Quality control (Univ. Study)/Computer Network

HTTP(1)

by 생각하는 이상훈 2023. 9. 12.
728x90

HTTP

HTTP는 HyperText Transfer Protocol의 줄임말로 웹의 application layer protocol이다. 기본적으로 client와 server가 정해져있는 client/server 구조이다. 아래와 같이 client가 request를 하면 server가 response하는 방식이다.

손실이 있으면 안되기 때문에 TCP(Transmission Control Protocol)을 이용한다.

우선 client는 TCP connection request를 server의 port 80에 보낸다. Server는 TCP connection을 accept한다. HTTP message가 교환되고 TCP connection은 종료된다.

이때 HTTP는 과거의 history를 저장하지 않는 특성이 있다.

HTTP는 non-persistent HTTP와 persistent HTTP 두 종류가 존재한다.


Non-persistent HTTP

TCP 연결을 통해 전송되는 개체는 최대 하나이다. 연결 후에 server가 data를 전송해주고 바로 닫힌다.
여러 개체를 동시에 다운로드하려면 여개의 parallel한 연결이 필요하다.

위는 과정을 상세히 설명한 내용이다. 첫번째 connection에서 baseline HTML을 받아내고, 그 이후 10개의 jpeg object를 요청한다. 이때 10개의 object 요청은 각각의 object 요청의 response가 돌아오기 전에 client가 보내도 괜찮다.

non-persistent HTTP response time = 2*RTT+ file transmission time

 


Persistent HTTP

서버가 응답을 보낸 후 연결을 열어둔다. 열린 연결을 통해 동일한 클라이언트/서버 간의 후속 HTTP 메시지가 전송된다.

클라이언트는 참조된 개체를 발견하는 즉시 요청을 보낸다. 참조된 모든 개체에 대해 하나의 RTT만큼 작다.


Non-persistent, Persistent HTTP에서의 delay를 계산하는 예제를 풀어보자.

문제의 상황은 HTTP client가 HTML document 받고 3개의 아주 작은 이미지를 받아오는 과정이다. 이미지가 아주 작다고 조건을 준 것은 transmission time을 무시해도 된다는 것이다.


HTTP request message

HTTP request mesage는 아스키코드로 전송된다.

General한 format을 살펴보면 아래와 같다.


 

728x90

'Quality control (Univ. Study) > Computer Network' 카테고리의 다른 글

FTP  (0) 2023.09.14
HTTP(2)  (0) 2023.09.14
Application Layer  (0) 2023.09.09
Protocol  (0) 2023.09.08
Network Core  (0) 2023.09.06