Keepalive
title: 2025-10-31 author: 강병호 (이름) date: 2025-10-31(날짜) category: TIL/강병호/2025/10 layout: post (자유) —
HTTP Keep-Alive vs TCP Keep-Alive
1️HTTP Keep-Alive
- 계층: 애플리케이션 계층 (HTTP 프로토콜)
- 동작:
- 한 번 맺은 TCP 연결을 끊지 않고, 여러 개의 HTTP 요청/응답을 같은 연결에서 처리
Connection: keep-alive헤더 사용
- 목적:
- TCP 연결 생성/해제 비용 감소
- 웹 페이지 로딩 속도 향상 (HTML, CSS, JS, 이미지 등 여러 리소스를 한 연결로 받음)
- 언제 쓰나:
- 웹 브라우저 ↔ 웹 서버 같은 단기적이지만 여러 요청이 몰려 있는 상황
TCP Keep-Alive
- 계층: 전송 계층 (TCP 자체 기능, OS 커널에서 동작)
- 동작:
- 데이터가 오랫동안 오가지 않아도, 커널이 주기적으로 프로브 패킷을 보내 연결이 살아 있는지 확인
- 상대방이 응답 없으면 “죽은 연결”로 간주하고 연결 종료
- 목적:
- 죽은 연결 감지 (상대가 다운됐는지 확인)
- NAT/방화벽에서 유휴 연결 강제 종료 방지
- 언제 쓰나:
- SSH, DB Connection Pool, WebSocket, IoT 같은 장시간 유휴 연결을 유지해야 하는 상황