KeepAlive란 무엇인가요?
KeepAlive는 장치나 소프트웨어가 주기적으로 신호를 교환하여 서로 간의 연결이 활성 상태를 유지하고 있는지 확인하는 네트워크 시스템의 통신 형태를 말합니다. 미리 정의된 간격으로 한 쪽에서 KeepAlive 신호를 보내면 수신자는 이를 연결이 정상적으로 작동하고 있다는 확인으로 해석합니다. 일정 시간 동안 KeepAlive 신호가 수신되지 않으면 시스템은 연결이 끊어진 것으로 간주하고 통신 채널을 닫거나, 세션을 종료하거나, 다시 연결하는 등의 프로세스를 시작합니다.
TCP에서는 이 기능을 TCP KeepAlive라고 합니다. 서버 측에서 이 기능은 도달할 수 없게 된 클라이언트와의 연결에 묶인 리소스를 자동으로 해제합니다. 클라이언트 측에서 TCP KeepAlive는 장애 조치로 인해 서버의 IP 주소가 변경되는 경우와 같이 자동 재연결을 활성화합니다.
HTTP에서는 클라이언트와 서버 간의 TCP 연결을 명시적으로 유지하기 위해 KeepAlive 기능이 제공됩니다. 이렇게 하면 필요한 TCP 연결 수가 줄어들어 연결 리소스가 보존되고 성능이 향상됩니다. 웹 페이지가 로드되면 기본 HTML 파일뿐만 아니라 이미지, CSS, JavaScript 파일과 같은 관련 자산도 전송해야 합니다. 일반적으로 이러한 파일을 전송하려면 각 파일마다 별도의 TCP 연결이 필요합니다. 하지만 KeepAlive를 활성화하면 이러한 전송을 단일 TCP 연결을 통해 수행할 수 있습니다. 이 기능은 HTTP/1.0에서는 선택 사항이었지만 KeepAlive는 HTTP/1.1부터 기본적으로 활성화되었습니다.