일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- vue
- TLS
- vue-cli
- JavaScript
- rendering
- CloudFlare
- aws
- web vital
- 비동기
- typeScript
- vue3
- Testing
- caching
- CSS
- devtools
- msw
- csr
- e2e
- SSR
- 선택자
- http3
- Cypress
- svelte
- ViTE
- ts error
- https
- api test
- custom command
- import.meta.env
- QUIC
- Today
- Total
Develop Note by J.S.
[Network] HTTP 본문
HTTP는 HyperText Transfer Protocol 의 약자로 Web브라우저에서 사용하는 네트워크 통신 프로토콜입니다. HTTP는 현재 HTTP3 버전까지 나온 상태이며 각 버전별 특징을 간략하게 정리하였습니다.
우선 HTTP 버전설명 전에 TCP와 UDP의 차이점을 알아야 할 것 같습니다.
TCP : OSI 4계층의 연결형 프로토콜로 신뢰성있는 데이터 통신이 가능하며, 에러 복구, 흐름제어 기능을 담당합니다.
UDP : 같은 4계층의 비연결형 프로토콜로 순서가 보장되지 않고 흐름제어를 할 수 없지만, 속도가 빠르고 checkSum을 통해 최소한의 오류를 잡습니다.
HTTP 1.1 (TCP)
- Connection 한개당 하나의 요청만 처리가 가능하여 요청/응답이 1:1 Sequence로 동작.
- HOL(Head Of LIne) Blocking이 발생될 수 있다.
* HOLB : 패킷 전송 중 오류 패킷이 발견 될 경우 재 전송될 때까지, 다음 패킷들의 멈춰있는 지연 상태 발생 - RTT(Round Trip Time) 증가
* 1개의 Connection에 1회의 요청응답처리로 인해 매 요청 시 Connection으로 인한 3-way Handshake 가 반복적으로 발생되어 불필요한 RTT(왕복시간) 증가 및 네트워크 지연발생 (TLS 암호화까지 3 RTT 소모)
* 3-way Handshake : Client에서 Server로 Connection을 맺기위해 Signal을 보내 연결을 맺는 단계로 SYN, ACK의 신호를 주고 받음.
HTTP 2 (TCP)
- 이전 버전 대비 네트워크 속도, 리소스 사용량 등의 성능 위주로 개선.
- Multiplexed Streams : 1개의 Connection으로 다수의 요청/응답을 가능하게 하며 Stream형식으로 주고받음.
- Header정보를 HPACK으로 압축하여 헤더크기 감소.
- Client가 요청하기 전에 Server측에서 콘텐츠 푸시 가능.
HTTP 3 (UDP)
- QUIC 프로토콜을 사용하여 UDP에 의존하며. UDP의 특징을 살려 연결 속도를 향상
- 기본적으로 TLS 암호화 방식이 적용되어 보안성 향상
- 0-RTT 이미 연결된 서버는 Handshake를 건너 뛸 수 있음. (첫 연결 시에만 1 RTT를 소모)
- Multiplexing 을 지원
- 전방오류정정(FEC) 방식을 사용하여 오류발생 시 패킷 재 전송이 아닌, 정정비트를 통해 훼손된 비트를 복구
참고사이트
https://velog.io/@wiostz98kr/HTTP1.1%EA%B3%BC-HTTP2.0%EC%9D%98-%EC%B0%A8%EC%9D%B4-e2v4x4t1
https://velog.io/@rlacksals96/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-TCPUDP%EC%99%80-3way-handshake
https://www.spirent.kr/blogs/building-next-generation-web-with-http-3
'Knowledge > Network' 카테고리의 다른 글
[Network] OSI 7계층 & TCP/IP 4계층 (0) | 2023.08.08 |
---|---|
[Network] API Architecture (0) | 2023.06.27 |
[Network] Socket.io vs Websocket (0) | 2023.06.26 |
[Network] HTTPS (0) | 2023.06.26 |