본문 바로가기

카테고리 없음

지속성 HTTP vs 비 지속성 HTTP (+ RTT)

HTTP는 TCP를 사용한다.

 

지속성 HTTP

TCP연결된 후 page 들어가서 계속 타고 들어가며 클릭하다가 끝나면 TCP 연결을 해제한다.

+ 요즘은 보통 이 방법을 사용한다.

 

순서

1) Client : Host 주소만 server에 보낸다. (www.someSchool.deu)

2) Server : accept를 해준다.

3) Client : 원하는 객체를 알리며 HTTP request message를 보낸다. (someDepartment/home.index)

4) Server : 원하는 객체를 response message에 담아 client에 보낸다.

5) (3) ~ (4)를 반복한다.

6) TCP 연결을 해제한다.

 

반응시간

처음 TCP 연결하는 1RTT 말고는 계속 1RTT씩 소요하며 데이터/파일을 주고 받는다.

 

 

비지속성 HTTP

TCP 연결하고 HTML 문서를 1개 가져오면 바로 TCP 연결을 해제한다.

+ 예전에 Server 성능이 안 좋을 때 다른 Client도 받기 위해 이 방법을 사용했다.

 

순서 (www.someSchool.deu/someDepartment/home.index)

1) Client : Host 주소만 server에 보낸다. (www.someSchool.deu)

2) Server : accept를 해준다.

3) Client : 원하는 객체를 알리며 HTTP request message를 보낸다. (someDepartment/home.index)

4) Server : 원하는 객체를 response message에 담아 client에 보낸다.

5) TCP 연결을 해제한다.

 

반응시간

매 데이터/파일을 주고 받을 때마다 2RTT(TCP 연결 + 데이터 주고 받는 시간)가 소요된다.

 
 
 

RTT

작은 패킷이 클라이언트에서 서버로 전송되고 돌아오는 시간

 

▶ TCP 연결 (1RTT소요)

▶ 데이터 전달 (1RTT 소요)

▶ TCP 해제 (1RTT소요)

 

- 비지속성 HTTP의 반응 시간 = 2RTT(매 요청마다 반복되는 시간) + 파일 전송 시간(어차피 필요한 시간) (정확히는 연결이 끊기는 시간까지 3RTT)