반응형

모든 것이 HTTP

HTTP는 HyperText Transfer Protocol의 약자이다.

HyperText 예를 들어 HTML같은 링크를 통해서 연결할 수 있는 문서를 전송하는 프로토콜로 처음 시작되었다.

그런데, 지금은 모든것을 HTTP 프로토콜에 담아서 전송을 한다.

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

거의 모든 형태의 데이터를 전송한다.

서버간에 데이터를 주고받을 때도 HTTP를 사용한다.

TCP를 직접 연결해서 하는 경우는, 게임서버 등 특수한 경우말고는 잘 없다.
심지어 요즈음에 모바일게임같은 경우에도 HTTP로 서버를 열어서 통신하는 구조로 개발을 많이한다.

 

HTTP는 쭉 발전을 해왔다.

가장 중요한 것은, HTTP/1.1 버전이다. 지금 우리가 가장 많이 사용하고, 우리에게 가장 중요한 버전이다.
"어? HTTP/2 혹은 HTTP/3이 더 중요하지 않나요?" 라고 할 수도 있는데,
HTTP/1.1 스펙에 대부분의 기능이 들어있고, HTTP/2와 HTT/3는 거의성능개선에 초점이 맞춰줘 있다고 보면 된다.

그럼 여기 밑에 있는 버전은 뭘까?

1997년에 나왔다가, 1999년에 개정이되고, 2014년에 한번 더 개정이 되었다.

현재 신규스펙이 RFC7230~7235이기 때문에 이것을 봐야 한다.
버전이 이전에는 버전이 하나씩이었는데 2014년에 개정된 것은, 버전이 여러개로 잘게 쪼개졌다.

 

정리하자면, HTTP/1.1 버전이 중요하다.

 

기반 프로토콜에 대해서 살펴보자.

HTTP/1.1과 HTTP/2는 TCP프로토콜 위에 동작한다.

HTTP/3는 UDP위에 동작한다.

현재는 HTTP/1.1 을 주로 사용한다.
HTTP/2, HTTP/3도 사용이 점점 증가하고 있다.

 

실제로 어떤 것들이 HTTP 버전으로 통신되고 있는지 간략히 확인 해보자.

구글의 크롬은 http3를 이미 많이 쓰고 있는 것을 확인할 수 있다.

네이버는 http2를 사용하고 있는 것을 확인할 수 있다.

 

지금은 http2와 http3가 급속도로 펴지고 있다.

하지만 우리에게 중요한 것은 http1.1의 스펙을 잘 알면 된다.

HTTP는 중요한 특징이 있다.

HTTP는 클라이언트 서버 구조 로 동작하는 것이다.

무상태 프로토콜(stateless), 비연결성을 지향한다.

HTTP 메시지를 통해서 통신한다.

단순함, 확장 가능 이라는 특징도 있다.

 

자세한건 다음시간에 알아보도록 하겠다.

반응형