728x90
반응형
HTTP 기본 구조는 1회성 요청(request) 와 응답(response) 로 이루어진다.
따라서, 매순간마다 HTTP request 및 response 로 인한 종료시 TCP 과정의 연결, 종료 과정이 필요하다.
keep alive 기능은 이런 불필요한 연결과 종료 과정을 줄이기 위해, keep alive timeout 기간에는 동일한 리소스에 한해서 HTTP request 에 대해 연결을 유지하는 기능이다.
HTTP/1.1 에서는 디폴트값으로 keep alive 기능을 지원하지만 이전 버전에는 직접 설정해주었어야 했다.
HTTP 요청을 보낼 때
- Connection: Keep-alive 라고 보내면,
서버에서 정상적으로 처리가 되면 응답으로
- Connection: keep-alive
- keep-alive : max = 1000, timeout = 5 라고 응답을 내린다 ( 최소 5초동안 최대 1000번의 요청을 할 경우 끊어지지않는다.)
keep alive 기능을 활용 하면 장점으로는 불필요한 3-way-handshake 를 줄일 수 있다.
서버의 자원은 무한하지 않기 때문에 비용을 줄일 수 있다.
단점으로는, 트래픽이 많은 바쁜 환경에서는 keep alive 기능을 사용하면 모든 요청마다 연결을 유지해야 하기 때문에,
프로세스의 수가 기하급수적으로 늘어나 MaxClient 값을 오버해버린다.
메모리를 많이 사용하기 때문에 성능저하의 원인이 된다.
728x90
반응형
'Knowledge > CS' 카테고리의 다른 글
| [CS] 객체지향 프로그래밍이란? (0) | 2022.12.03 |
|---|---|
| [CS] 뮤텍스(Mutex) 세마포어(Semaphore) 란? (0) | 2022.12.02 |
| [CS] 프로세스와 스레드 개념, 차이 (0) | 2022.11.30 |
| [CS] 대칭키 암호화, 비대칭키 암호화 (0) | 2022.11.29 |
| [CS] OSI 7 계층 , TCP/IP 4 계층이란? (1) | 2022.11.27 |
댓글