-
http요청이 발생하면 서버와 클라이언트 사이에 TCP연결이 발생하는데 이때 필요한 hand shaking과정이 꽤 비용이 큼
-
http1.0에서는 한 요청당 하나의 TCP연결이 필요헀으나, http1.1부터는 TCP연결을 재활용하여 한번의 연결로 여러 요청을 처리할 수 있게됨.
-
그렇다면 하나의 연결로 여러 요청을 동시에 처리할 수 있을까?
- http1.1에서는 파이프라이닝이라는 개념을 도입함으로써 이 문제를 해결함

- 그럼 이런 매커니즘이 수 많은 요청을 동시에 처맇라 수 있음을 의미하는가?
- 그렇지는 않음. 일단 서버는 파이프라인을 통해 들어온 요청들의 응답을 무조건 FIFO로 처리해 주어야 함(왜그런지는 잘 모르겠음. 요청을 구분할 수 있는 다른 방법이 없나?)
- 또한 HOL(Head Of Line Blocking)이라는 이슈가 있음. 이는 첫번째 패킷의 지연으로 인해 발생하는 성능저하 이슈라고 함
- 어쨋든 이러한 이슈 때문에 대부분의 브라우저는 http의 파이프라이닝을 기본적으로 disabled하고 있음
-
그렇다면 여러 요청을 동시에 어떻게 처리하는가? 그냥 지속되는 TCP 연결을 여러개 만듦으로써 처리하고 있음