반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Javascript
- 트랜잭션 격리
- ECMAScript
- enum
- 자바스크립트
- TCP/IP
- docker desktop 유료화 정책
- frontend
- 의존성주입
- Spock Stub
- Docker Desktop 쓰고싶다
- @Transaction isolation
- docker desktop 대체
- TypeScript
- Spock Mock
- @Transaction propagation
- vue store
- Mock vs Stub
- Spock Spy
- mock stub spy
- Rancher Desktop설치
- HTTP란
- 공짜로 Docker Desktop같은거 쓰기
- 타입스크립트
- Vue+Typescript
- nuxtjs/composition-api buildModules
- mock stub
- webpack
- Spock Mock Stub Spy
- DI
Archives
- Today
- Total
끄적끄적
[네트워크] keep-alive에 대해서 알아보자 본문
반응형
HTTP 지속적 연결 상태, HTTP 영구 접속 또는 HTTP 킵얼라이브, HTTP 연결 재사용은 하나의 TCP 연결을 사용하여 복수의 HTTP 요청/응답을 주고받는다는 개념으로, 매 요청/응답 쌍마다 새로운 요청을 여는 것과는 반대되는 개념이다.
-위키백과-
http keep-alive 웹개발을 하다보면 기본적으로 알고 지나가야할 이론입니다.
서버간 통신을 주고 받으며 통신을 위한 커넥션 즉 서버간 연결과정이 나옵니다.
일전에 포스팅한 3way handshake & 4way handshake가 그 연결과정에 대한 내용이죠.
keep-alive는 반복적이고 빈번한 통신에 대해 데이터를 주고 받을때마다 connection을 연결하는 과정을 하다보면 그 만큼의 퍼포먼스에 대한 저하를 줄여보고자 나온 방안인데 http1.1이전에 버전에서는 수동적으로 keep-alive를 명시해서 사용했지만,
http1.1부터는 기본적으로 keep-alive 설정이 되어있고, 기본적으로 5초간 커넥션을 유지시켜줍니다.
그래서 커넥션을 유지 시켜주는게 왜 좋은건데?하면 커넥션이 유지되어 있으니 그 다음 통신시 이 부분에 대한 커넥션을 맺기위한 과정이 생략이 되면서 더 빠르게 필요한 데이터 교환이 이뤄지게 되겠죠?
HTTP 커넥션 파이프라이닝에 대한 그림입니다.
보시면 HTTP 파이프라이닝은 한 단계 더 나아가, 응답조차도 기다리지 않고 연속적인 요청을 보내서 네트워크 지연을 더욱 줄입니다.
HTTP/1.1 200 OK
Connection: Keep-Alive
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
Date: Thu, 11 Aug 2016 15:23:13 GMT
Keep-Alive: timeout=5, max=1000
Last-Modified: Mon, 25 Jul 2020 04:32:39 GMT
Server: Apache
http 1.1버전에 connection 타입이 keep-alive로 잡혀있는 예시 헤더값입니다.
keep-alive 설정에 대한 정보는 아래와 같습니다.
timeout: 유휴 연결이 계속 열려 있어야 하는 최소한의 시간(초 단위)을 가르킵니다. keep-alive TCP 메시지가 전송 계층에 설정되지 않는다면 TCP 타임아웃 이상의 타임아웃은 무시된다는 것을 알아두시기 바랍니다.
max: 연결이 닫히기 이전에 전송될 수 있는 최대 요청 수를 가리킵니다. 만약 0이 아니라면, 해당 값은 다음 응답 내에서 다른 요청이 전송될 것이므로 비-파이프라인 연결의 경우 무시됩니다. HTTP 파이프라인은 파이프라이닝을 제한하는 용도로 해당 값을 사용할 수 있습니다.
한번 쯤은 직접 keep-alive의 설정정보를 바꿔서 통신을 직접해보면 이해를 하는데에 도움이 될듯합니다.
반응형
' Computer Science > Network' 카테고리의 다른 글
[네트워크] Rest API란? (0) | 2021.05.17 |
---|---|
[네트워크] TCP/IP 3way HandShake & 4way HandShake (0) | 2019.07.11 |
[네트워크] HTTP - 히스토리 및 버전 알아보기 (0) | 2019.06.23 |
[네트워크] HTTP - 기초 및 개념 이해 (0) | 2019.06.22 |
Comments