HTTP의 특성
HTTP는 HyperText Transfer Protocol의 약자로, 월드 와이드 웹에서 데이터를 주고받기 위한 기본적인 통신 규약입니다. 쉽게 말해, 인터넷에서 웹 브라우저(클라이언트)와 웹 서버가 서로 정보를 주고받을 때 사용하는 언어라고 생각하면 됩니다.
요청-응답 기반 클라이언트-서버 구조
클라이언트가 서버에 요청을 보내고, 서버가 그에 대한 응답을 반환하는 방식으로 통신하는 프로토콜입니다.
미디어-독립적
전송되는 데이터의 종류나 형식에 관계없이 동작하는 프로토콜입니다.
다양한 유형의 데이터 (텍스트, 이미지, 오디오, 비디오 등)를 전송할 수 있습니다.
네트워크 계층에서 데이터의 형식을 인식하지 않고 전송합니다.
비연결성
HTTP 1.0, HTTP 1.1, HTTP 2.0은 TCP 기반
다수의 클라이언트가 연결을 시도할 경우 연결을 유지하는 동안 서버의 자원 소모가 너무 크기 때문에 비연결성 특징을 적용했다
스테이트리스
서버는 클라이언트의 상태를 기억하지 않는다
지속연결(Keep-Alive)
더보기
HTTP Keep-Alive
- 목적:
- 하나의 TCP 연결을 통해 여러 HTTP 요청/응답을 처리하여 네트워크 오버헤드를 줄입니다.
- 동작 방식:
- HTTP 요청 헤더에 Connection: keep-alive 필드를 포함하여 연결 유지 의사를 전달합니다.
- 서버는 응답 헤더에 Connection: keep-alive 필드를 포함하여 연결 유지에 동의합니다.
- 일정 시간 동안 활동이 없거나, 정해진 요청 횟수를 초과하면 연결을 종료합니다.
- 장점:
- TCP 연결 설정/해제 과정을 반복하지 않아 성능을 향상시킵니다.
- 네트워크 혼잡을 줄여줍니다.
- 웹 페이지 로딩 속도를 개선합니다.
HTTP 버전별 특성
HTTP 0.9: 단일한 요청 방법(GET 메서드), 비지속 연결
HTTP 1.0: 다양한 요청 방법과 헤더 추가
HTTP 1.1: 지속 연결 기능 추가
HTTP 2.0: 요청 순서대로 응답을 반환할 필요 없음, 헤더 압축
HTTP 3.0: UDP 기반 프로토콜인 QUIC로 변경
반응형
'공부' 카테고리의 다른 글
버전관리 - Git, Github 이론 (0) | 2024.12.12 |
---|---|
복습 목차 (0) | 2024.12.12 |
웹 서버와 웹 어플리케이션 서버 (0) | 2024.12.12 |
자원과 자원의 식별 URI/URL/URN (0) | 2024.12.12 |
DNS (Domain Name System) (0) | 2024.12.12 |