KeepAlive란 무엇인가요?

KeepAlive는 네트워크 시스템에서 장치나 소프트웨어가 주기적으로 신호를 주고받으며 연결이 계속 활성 상태인지 확인하는 통신 방식입니다. 미리 정해진 간격마다 한쪽에서 KeepAlive 신호를 보내면 수신 측은 이를 연결이 정상적으로 작동하고 있다는 확인으로 해석합니다. 일정 시간 동안 KeepAlive 신호가 수신되지 않으면 시스템은 연결이 끊어진 것으로 간주하고 통신 채널 닫기, 세션 종료 또는 재연결 등의 절차를 시작합니다.

TCP에서는 이 기능을 TCP KeepAlive라고 합니다. 서버 측에서는 연결할 수 없게 된 클라이언트와의 연결에 할당된 리소스를 이 기능이 자동으로 해제합니다. 클라이언트 측에서는 장애 조치로 인해 서버의 IP 주소가 변경되는 경우 등에 TCP KeepAlive가 자동 재연결을 지원합니다.

HTTP에서는 클라이언트와 서버 간의 TCP 연결을 명시적으로 유지하기 위해 KeepAlive 기능을 제공합니다. 이를 통해 필요한 TCP 연결 수를 줄여 연결 리소스를 절약하고 성능을 향상할 수 있습니다. 웹 페이지를 로드할 때는 기본 HTML 파일뿐만 아니라 이미지, CSS, JavaScript 파일과 같은 관련 리소스도 전송해야 합니다. 일반적으로 이러한 파일을 전송하려면 파일마다 별도의 TCP 연결이 필요합니다. 하지만 KeepAlive를 활성화하면 하나의 TCP 연결을 통해 이러한 파일을 모두 전송할 수 있습니다. HTTP/1.0에서는 이 기능이 선택 사항이었지만, HTTP/1.1부터는 KeepAlive가 기본적으로 활성화되어 있습니다.