프로필사진

Go, Vantage point

가까운 곳을 걷지 않고 서는 먼 곳을 갈 수 없다.


Github | https://github.com/overnew/

Blog | https://everenew.tistory.com/





티스토리 뷰

반응형

 

 

 

HTTP의 패킷 이동을 보기 위해 wire shark를 확인하던 중 이론과 다른 부분을 확인했다.

 

HTTP 1.1 version에서는 keep-alive로 설정 시 하나의 connection에서 요청과 응답이 오고 가야 한다.

이를 실습을 통해 확인해 보자.

 

 

실습환경

 

 

 

 

 

 

패킷 분석

 

client에서 server로의 3 way handshake가 진행되어, 세션이 맺어진다.

 

 

이 세션 내에서 client가 HTTP GET main html파일을 요청한다.

 

 

 

이에 대한 응답이 확인된다.

 

 

Nginx는 기본적으로 keep-alive timeout이 75초로 세팅되어 있으므로,

75초간 서로 간의 통신이 더 이상 없을 땐 세션이 종료된다.

 

 

 

 

 

그런데 확인해 보면 3개의 image를 각각 새로운 세션을 새로 맺어서 iamge를 GET 해온다.

 

 

 

포트 번호도 다른 것이 확인이 된다.

 

 

 

 

Parallel Connection

 

Keep alive라고 단 한 개의 port만 사용하면 순차적 전송을 기다려야 하므로, 클라이언트의 여러 포트와 병렬적인 connection을 맺어 넓은 대역폭의 사용한다.

 

TCP/브라우저의 자체적인 최적화로, 병렬연결이 진행한다.

 

Nginx setting에서도 최대 keep-alive connection 개수 제한 가능하다.

 

아쉽게도 사용하는 파이어폭스는 왼쪽처럼 connection limit이 없어서 한 개의 connection 만에서 진행되는 HTTP 실습은 하지 못하였다.

 

 

다시 캐시를 지우로 로딩을 해보면, 하나의 connection에서도 여러 가지 요청이 나가는 persistent conncetion도 확인이 된다.

 

 

 

 

 

반응형
댓글
반응형
인기글
Total
Today
Yesterday
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함