Keep Alive란?
Keep Alive?
-HTTP Request Header의 Connection 키에 대한 값입니다.
-client와 Server의 TCP연결을 유지 시켜줍니다.
Header?
우리는 보통 서버와 통신을 할 때에 header에 여러 정보를 실어서 보내게 됩니다.
Accept / Content Length / Host / Connection 등 header의 내용에는 여러가지가 있지만 오늘은 Connection에 대해서 알아보려고 합니다.
왜냐면 Connection 헤더에 Keep Alive 값이 들어가기 때문입니다.
Connection?
HTTP/1.0 버전 까지는 HTTP 프로토콜의 특징인 비 연결성으로 인해
Client가 Server로 HTTP Request를 하고 응답을 받으면 연결을 바로 종료했습니다.
비 연결성이란 해당 요청에 대한 응답을 받으면 연결이 끊기는 것을 말합니다.
그래서 클라이언트가 HTTP요청으로 이미지를 요청하거나 HTML을 요청을 하게 되면 항상 TCP 3HAND-SHAKE를 해주어야 했습니다.
HTTP프로토콜은 TCP기반이기 때문에 3HAND-SHACK 연결이 수립된 후에 그 위에서 통신을 진행합니다.
그렇게 되면 요청 마다 연결을 만들게 되고 Latency / 네트워크 트래픽이 증가하게 됩니다.
한 마디로 비효율적 통신을 하게 됩니다.
그래서 HTTP/1.1 버전에서는 Keep-alive옵션을 지원하여 하나의 TCP연결에 여러 개의 HTTP통신을 지원하는 기능을 추가하게 되었습니다.
해당 옵션을 사용하면 위의 문제점을 해결할 수 있습니다.
HTTP Request Header 구조 참고