twocowsong

[모든 개발자를 위한 HTTP 웹 기본 지식 - 9] 본문

IT/HTTP

[모든 개발자를 위한 HTTP 웹 기본 지식 - 9]

WsCode 2022. 1. 22. 16:09

HTTP 기본

모든것이 HTTP

HTTP (HyperText Transfer Protocol)에 담아서 모든것을 전송한다. HTML, TEXT, 이미지, 음성, 영상, 파일, JSON, XML 거의 모든 형태의 데이터 전송이 가능하다. 서버간의 데이터를 주고 받을 때도 대부분 HTTP를 사용한다.

HTTP 역사
• HTTP/0.9 1991년: GET 메서드만 지원, HTTP 헤더X
• HTTP/1.0 1996년: 메서드, 헤더 추가
 HTTP/1.1 1997년: 가장 많이 사용, 우리에게 가장 중요한 버전
-> HTTP/1.1에 가장 많은 기능이 추가되어있으며 그 뒤 버전은 성능 추가버전이다.
-> RFC2068 (1997) -> RFC2616 (1999) -> RFC7230~7235 (2014)
-> HTTP버전을 찾아 볼때는 RFC7230~7235 버전을 찾아서 보시면됩니다.
• HTTP/2 2015년: 성능 개선
• HTTP/3 진행중: TCP 대신에 UDP 사용, 성능 개선


HTTP1.1 과 HTTP2는 TCP 기반위에서 작동되며 HTTP3는 UDP 기반위에서 작동되고있다. HTTP3의 UDP는 사전 연결없이 작동됨으로 속도가 빠르지만 많은것을 다시 개발해야된다는 단점이있다.


허나 구글에서는 이미 HTTP3를 사용하고있으며


네이버에서는 아직 TCP기반인 HTTP2를 사용하고있다.


그리고 여담이지만 GCP를 이용한 VM 서버에서 작동되는 HTTP 프로토콜은 바벨(CDN)을 제외하고는 HTTP1.1을 사용하고있습니다.

HTTP1.1 : 연결당 하나의 요청과 응답을 처리하기 때문에 동시 전송 문제와 다수의 리소스를 처리하기에 속도와 성능 이슈를 가지고있습니다.


위처럼 한개의 서비를 요청하면 한개씩 리턴받는 방식과, 한번에 요청하여 완료된것부터 받는방식입니다.

HTTP 특징
1. 클라이언트 서버 구조
2. 무상태 프로토콜(스테이트리스), 비연결성
3. HTTP 메세지
4. 단순함, 확장 가능