HTTP/About HTTP

2022. 6. 17. 12:24
728x90

• HTTP

HTTP는 HyperText Transfer Protocol이다. 모든 것이 HTTP다 라는 말이 있을 정도로 HTTP는 만능이다. HTML, TEXT, IMAGE, JSON, XML (API) 등 거의 모든 형태의 데이터를 전송할 수 있고, 서버간에 데이터를 주고 받을 때도 대부분 HTTP를 사용한다.

 

• HTTP 버전

HTTP/1.1을 가장 많이 사용하고, 가장 중요한 버전이다. TCP는 HTTP/1.1 & HTTP/2 기반이며, UDP는 HTTP/3 기반 프로토콜이다. 현재 HTTP/1.1을 주로 사용하고 점점 HTTP/2와 HTTP/3도 증가하고 있는 추세다.

 

• Client - Server 구조(Request - Response 구조)

클라이언트는 서버에 요청을 보내고, 응답을 대기한다. 서버가 요청에 대한 결과를 만들어서 응답한다.

 

• 무상태 프로토콜(Stateless)

서버가 클라이언트 상태를 보존하지 않는 방식을 말한다. Stateless은 갑자기 클라이언트의 요청이 증가해도 서버를 대거 투입할 수 있다는 장점과 요청시 클라이언트가 추가 데이터 전송을 해야된다는 단점이 있다. Stateful과 Stateless의 차이는 고객과 점원의 관계를 생각해보면 된다. 고객이 물건을 구매하는 각 단계마다 서로 다른 종업원과 소통을 한다면 옵션을 일일이 얘기를 해주고 확인하는 번거로운 단계를 거쳐야 한다. 이게 Stateless이다. 반대로 Stateful은 한 종업원이 쭉 계산까지 맡고 일을 하기 때문에 소통에 있어서 번거로움이 없는 체계라고 보면 이해하기가 쉽다. 가장 큰 차이는 Stateless의 경우 응답 서버를 쉽게 바꿀 수 있다는 점이다.(무한한 서버 증설 가능)

 

그런데 무조건 Stateless가 안 좋은 걸까? 그건 아니다. 고객과 점원이 아닌 통신을 하는 서버와 클라이언트라고 했을 때, 만약 서버의 통신이 끊기게 된다면 Stateful 방식으로 소통을 하던 서버와 클라이언트는 처음부터 다시 소통을 시도해야 하는 반면에, Stateless의 방식은  어떤 점원이 오든 자신이 원하는 니즈를 일일이 계속 말하던 방식이라, 서버가 끊겼다고 다른 서버에 평상시처럼 다시 요청하면 그만이다.

 

모든 것을 무상태로 설계할 수 있는 경우도 있고 없는 경우도 있다. 실무에서는 로그인이 필요 없는 단순한 서비스 소개 화면의 경우는 무상태, 로그인의 경우 상태 유지 이런 식으로 쓴다. 상태 유지는 최소한만 사용하도록 하는 듯

 

• 비연결성(Connectionless)

HTTP는 기본이 연결을 유지하지 않는 모델이다. 일반적으로 초 단위 이하의 빠른 속도로 응답을 한다. 1시간 동안 수천명이 서비스를 사용해도 실제 서버에서 동시에 처리하는 요청은 수십 개 이하로 매우 작다. 수천명이 동시에 버튼을 누른다거나 연속해서 검색 버튼을 누르지 않으니 말이다. 그래서 서버 자원을 매우 효율적으로 사용할 수 있다. 연결을 유지하는 모델의 경우 요청과 응답이 있을 때마다 계속 자원을 소모해가면서 연결을 유지하기 때문에 비효율적이다.

 

다만, TCP/IP 연결을 새로 맺어야 하는데, 3way handshake 시간이 추가되고, HTML,CSS,JS 등 수 많은 자원이 함께 다운로드 되기 때문에 어느 정도는 한계가 있다. 지금은 HTTP 지속 연결(Persistent Connections = 헤더에 작성해서 요청하는 방식)로 문제를 해결하는 방식을 사용하기도 하며, HTTP/2와 HTTP/3버전을 통해 성능을 개선해나가는 중이기도 하다.

 

 

 

 

'Computer Science > Network' 카테고리의 다른 글

HTTP/HTTP 메서드 활용  (0) 2022.06.17
HTTP/HTTP 메서드  (0) 2022.06.17
HTTP/HTTP 요청/HTTP 응답/HTTP 헤더/HTTP 바디  (0) 2022.06.17
HTTP/Web Browser/URL/URI/URN  (0) 2022.06.17
HTTP/Internet Network  (0) 2022.06.17

BELATED ARTICLES

more