HTTP

HTTP 기본 & 클라이언트 서버 구조

느리지만 꾸준하게 2022. 4. 7. 09:43

HTTP 메시지에 모든 것을 전송

 

  • HTML, TEXT
  • IMAGE, 음성, 영상, 파일
  • JSON, XML (API)
  • 거의 모든 형태의 데이터 전송 가능
  • 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용

 

HTTP 역사

  • HTTP/0.9 1991년: GET 메서드만 지원, HTTP 헤더X
  • HTTP/1.0 1996년: 메서드, 헤더 추가
  • HTTP/1.1 1997년: 가장 많이 사용, 가장 중요한 버전
  • (RFC2068 (1997) -> RFC2616 (1999) -> RFC7230~7235 (2014))

 

  • HTTP / 2 2015년: 성능 개선
  • HTTP / 3 진행중: TCP 대신에 UDP 사용, 성능 개선

 

기반 프로토콜

  • TCP: HTTP / 1.1, HTTP / 2
  • UDP: HTTP / 3
  • 현재 HTTP/1.1 주로 사용

HTTP / 2, HTTP / 3도 점점 증가

 

 

 

 

 

 

 

 

tcp는 3 way handshake도 해야하고 기본적으로 데이터도 너무 많고 속도가 빠른 메커니즘이 아니라서 

udp 프로토콜 위에 애플리케이션 레벨에서 성능을 개선해서 최적화해서 넣은 것이 http3이다.

Google에서 naver을 검색하게 되면 Protocol창이 아래와 같이 뜨게 되는데 http/1.1과 http2를 다 쓰게 된다.

http 1.1의 스펙을 잘 알아놓자.

 

 

HTTP 특징

  • 클라이언트 서버 구조
  • 무상태 프로토콜(스테이스리스), 비연결성
  • HTTP 메시지
  • 단순함, 확장 가능

 

클라이언트 서버 구조

http에서는 클라이언트와 서버를 개념적으로 분리를 해주고 비즈니스 로직이랑 데이터를 다 서버에다가 밀어넣는다.

클라이언트는 UI와 사용성에 포커싱을 한다. 그러면 클라이언트와 서버가 각각 독립적으로 진화를 할 수 있다.

클라이언트는 UI는 어떻게 그릴지에 집중을 하고(안드로이드, 아이폰) 서버 한 곳에서 복잡한 비즈니스 로직을 처리하게 된다.

 

즉 양쪽이 독립적으로 진화를 할 수 있게된다.

 

 

  • Request Response 구조
  • 클라이언트는 서버에 요청(request)을 보내고, 응답(response)을 대기
  • 서버가 요청에 대한 결과를 만들어서 응답

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<출처 김영한: 모든 개발자를 위한 HTTP 웹 기본 지식 >

https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/dashboard

 

모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의

실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., - 강의 소개 | 인프런...

www.inflearn.com

 

'HTTP' 카테고리의 다른 글

비 연결성(connectionless)  (0) 2022.04.07
Stateful, Stateless  (0) 2022.04.07
웹 브라우저 요청 흐름  (0) 2022.04.07
URI(Uniform Resource Identifier)  (0) 2022.04.07
PORT & DNS  (0) 2022.04.07