Keep Alive 는 네트워크 또는 시스템에서 커넥션을 지속해서 유지하기 위해 사용되는 기술이나 설정을 의미한다.
HTTP 프로토콜에서 Keep-Alive는 하나의 TCP 커넥션으로 여러 개의 HTTP 요청과 응답을 주고받을 수 있도록 하는 기능이다.
HTTP/1.0에서는 요청마다 새로운 커넥션을 열고 닫았지만
HTTP/1.1부터는 Keep-Alive가 기본적으로 활성화되어 있어 커넥션을 재사용할 수 있습니다.
> 타임아웃 기능 사용
TCP프로토콜에서 Keep-Alive는 커넥션이 유후 상태일 때 커넥션이 끊어지지 않도록 주기적으로 패킷을 전송하는 기능.
> 커넥션이 유후 상태인지를 패킷을 활용
장점
- 커넥션을 재사용하여 네트워크 비용 절감
- handshake에 필요한 RTT(Round Trip Time)가 감소하여 네트워크 지연 시간을 줄일 수 있다.
- handshake 과정에서 발생하는 CPU, 메모리 등의 리소스 소비를 줄일 수 있다.
단점
- 유후 상태일 때에도 커넥션을 점유하고 있기 때문에 서버의 소켓이 부족해질수 있다.
- DoS공격으로 다수의 연결을 길게 유지하여 서버를 과부하시킬 수 있다.
- 타임아웃 설정이 적절하지 않으면 커넥션 리소스가 낭비될 수 있다.
'cs(with 매일메일)' 카테고리의 다른 글
| [260202월] 멀티 태스킹 시스템의 한계에 대해서 설명해주세요. (0) | 2026.02.02 |
|---|---|
| [260130금] 단일 프로세스 시스템에 대해서 설명해주세요. (0) | 2026.01.30 |
| [260127화] 자료구조 트라이에 대해서 설명해주세요. (0) | 2026.01.28 |
| [260126월] 자바에서 Object타입인 value를 String으로 타입 캐스팅하는 것과 String.valueOf()를 사용하는 것의 차이점은 무엇인가요? (0) | 2026.01.28 |
| [260123금] @OneToOne 관계에서 Lazy Loading을 설정할 때 주의할 점은 무엇일까요? (0) | 2026.01.28 |