[Tech] HTTP 기초
[Tech] HTTP 기초
HTTP란?!
- Hyper Text Transfer Protocol
- 즉, 종단 시스템간 데이터를 주고 받기 위한 통신 규약 또는 프로토콜을 의미한다.
- 초기에는 뜻에서 알 수 있듯이, 하이퍼텍스트 문서를 전송하는 규약으로 동작했다.
- 현재는 거의 모든 형태의 데이터 전송이 가능하다.
- 예:
HTML,Text,Image,음성,영상,JSON,XML등…
- 예:
HTTP 특징
1. 클라이언트 서버 구조
- Request Response 구조
- 클라이언트 : 서버에 요청을 보내고, 응답 대기
- 서버 : 요청에 대한 결과를 만들어서 응답
- 해당 구조는 클라이언트와 서버로 개념적으로 분리함.
- 따라서, 각각의 개별적(특징적)인 진화가 가능함.
- 예: 클라이언트는 UI/UX, 서버는 비즈니스 로직에 집중
2. 무상태(Stateless) 프로토콜
- 서버가 클라이언트의 상태를 보존하지 않음.
- 장점: 서버 확장성이 높음
- 단점: 클라이언트가 데이터를 매번 추가적으로 전송해야함.
Stateful vs Stateless
다시, 차이점 정리
클라이언트와 같은 기능을 하는 서버 A, B, C 존재.
Stateful 상태 유지
- 항상 같은 서버가 유지되어야 함.
- 서버 장애시, 다른 서버에 동일한 일을 시켜야 함.
Stateless 무상태
실무에서는..
- 무상태(Stateless)는 서버 관리 측면에서 좋으나, 데이터를 많이 보내야 함.
- 상태유지(Stateful)는 최소한 사용, 그 외는 무상태(Stateless)로 설계.
무상태(Stateless) : 단순 서비스 소개 화면
상태유지(Stateful) : 로그인 화면
3. 비연결성 (Connectionless)
- HTTP는 기본적으로 연결을 유지하지 않음.
- 따라서, 초 단위의 이하로 빠르게 응답함.
- 서버 자원을 매우 효율적으로 사용 가능!
HTTP/1.0 vs HTTP/1.1
HTTP 역사
- HTTP/0.9 [1991]
- HTTP/1.0 [1996]
- HTTP/1.1 [1997]
가장 많이 사용하는 중요한 버전!- RFC2068 [1997]
- RFC2616 [1999] : 대부분의 공식문서 내용이
- RFC7230~7235 [2014] : 현재의 내용은 해당 버전
- HTTP/2 [2015] → 성능 개선
- HTTP/3 [~현재] → 성능 개선
역사에서 알 수 있듯이, HTTP는 1.1 버전에서 비약적인 발전을 이뤄냈다.
두 버전의 가장 큰 차이
1.0과 1.1 버전의 큰 차이는 지속 연결이다!
✨ 출처
This post is licensed under CC BY 4.0 by the author.