[네트워크] HTTP(1)

oldshoe·2024년 4월 17일

네트워크

목록 보기
7/34

HTTP(HyperText Transport Protocol)

HTTP는 Application Layer의 Protocol로 웹 페이지를 표시하는데 사용된다.
웹 서버와 웹 브라우저 간의 데이터 전송을 위한 Protocol이다.

HTTP는 TCP를 사용한다!!

HTTP는 TCP를 기반으로 작동한다.
웹 서버와 클라이언트 사이에 커넥션을 만들고, 데이터를 주고 받고, 연결을 끊는다.

HTTP는 "stateless"하다!!

stateless하다는 것은 상태를 저장하지 않는다는 뜻인데, 서버가 클라이언트의 이전 상태를 가지고 있지 않다고 생각하면 된다.
(나중에 클라이언트에서 상태를 저장하는 '쿠키'라는 개념이 나오는데 그건 뒤에서 하겠다.)

HTTP connection : 2 types

HTTP 연결 방식에는 두 가지가 있다.

Non-persistent HTTP(HTTP 1.0)

TCP 연결 한 번에 하나의 객체를 전달할 수 있다. 그러면 여러 개의 객체를 전달하기 위해선 어떻게 될까?
당연히 TCP 연결을 그만큼 더 해야한다.

그러면 Non-persistent HTTP에서는 얼마나 시간이 소요될까?
객체마다 연결을 하고 닫기 때문에 연결을 할 때 1RTT, 파일을 요청할 때 1RTT가 걸린다.
그러면 오브젝트를 보내는 시간인 file transmission time까지 더해서 총 2RTT + file transmission time의 시간이 걸린다.
(RTT는 뒤에 설명한다.)

RTT(Round Trip Time)

클라이언트가 서버로 패킷을 보낸 후 응답을 받을 때까지 걸리는 시간

Persistent HTTP(HTTP 1.1)

Non-persistent HTTP와 달리 TCP 연결 한 번이면 객체를 여러 번 전송할 수 있다.
그러면 첫 TCP 연결 시에만 1RTT 시간을 소요하고, 객체 전송할 때마다 1RTT만 소요시키면 된다.

profile
toomuxi : There are many things in the world that I want to do

0개의 댓글