RTT(Round Trip Time)이란?
Keep-alive default
const express = require("express");
const app = express();
app.get("/", (req, res) => {
res.json({ a: 1 });
});
const server = app.listen(12010);
server.keepAliveTimeout = 30 * 1000;
127.0.0.1:12010
HTTP/1.0은 서버가 하나의 호스트만 가진다고 가정하기 때문에 HTTP/1.0은 헤더에 호스트를 포함하지 않음
HTTP/1.1은 헤더에 특정 호스트를 포함할 수 있게 변경되었으며 항상 호스트를 포함해서 요청하도록 변경
Range:byte=5000-
라는 헤더를 추가해서 다운로드 재개 요청을 할 수 있게 변경RTT
는 계속해서 증가하기 때문에 요청을 줄이기 위한 여러가지 기술들이 개발수많은 이미지를 하나의 이미지로 만들어 하나의 이미지만 다운 받아놓고 이를 통해 수많은 이미지를 다운받는 듯한 효과를 내는 것
naver → sp_main.png
예시 - 변경 전
예시 - 변경 후
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<img
src=""
alt=""
/>
</body>
</html>
성능 저하 현상
특징 | HTTP/1.0 | HTTP/1.1 |
---|---|---|
연결 관리 | 요청/응답 당 하나의 연결 | 지속적인 연결 유지 |
호스트 헤더 | 필수 아님 | 필수 |
캐싱 | 기본적인 캐싱 지원 | 세밀한 캐싱 제어 |
대역폭 최적화 | 단순 텍스트 기반 전송 | 청크 전송 인코딩 지원 |
에러 코드와 상태 코드 | 기본적인 상태 코드 지원 | 추가 상태 코드와 오류 처리 |
요청 메서드 | GET, POST, HEAD 지원 | PUT, DELETE, OPTIONS 등 추가 메서드 지원 |