본문 바로가기
Back End/HTTP

[HTTP] HTTP란?

by SolaBreeze 2023. 7. 18.

HTTP (Hypertext Transfer Protocol)는 월드 와이드 웹(WWW)에서 정보를 주고받는 데 사용되는 프로토콜입니다. 

HTTP는 클라이언트와 서버 간의 통신을 위해 설계되었으며, 클라이언트가 웹 브라우저를 통해 웹페이지나 리소스를 요청하면, 서버는 이를 처리하여 요청한 정보를 제공하는 방식으로 작동합니다.

HTTP의 특징은 다음과 같습니다.

1. 웹 요청과 응답 : 클라이언트(웹 브라우저)가 웹 서버에 데이터를 요청할 때, HTTP를 사용하여 요청을 보냅니다. 서버는 요청을 받으면 해당하는 웹 페이지, 이미지, 동영상 등의 리소스를 찾아서 클라이언트에게 응답으로 돌려줍니다.

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

 

2. 텍스트 기반 프로토콜: HTTP는 텍스트 기반의 프로토콜로, 사람이 읽고 이해하기 쉽도록 설계되어 있습니다. HTTP 요청과 응답은 헤더와 본문으로 구성되어 있으며, 헤더에는 요청 또는 응답에 대한 정보가 포함되어 있고, 본문에는 데이터가 담겨 있습니다.

출처 : 김영한님의 http 기본

 

3. Stateless(무상태성) 프로토콜: HTTP는 상태를 유지하지 않는 프로토콜입니다. 즉, 서버는 클라이언트의 이전 요청 상태를 기억하지 않으며, 각각의 요청은 독립적으로 처리됩니다. 이를 위해 쿠키와 세션 등의 기술이 사용되기도 합니다.

  • 장점
    • 서버가 클라이언트의 상태를 관리하지 않기 때문에 서버의 리소스를 효율적으로 관리하는데 도움이 됩니다.
    • 확장성이 용이하고, 서버 클러스터를 이용한 고가용성 구성이 쉽습니다.
  • 단점 
    • 클라이언트의 상태 정보를 서버가 알지 못하기 때문에 세션 관리와 같은 기능을 구현하기가 어렵습니다.

 

 

4. 비연결성(Non-persistent Connection): 클라이언트와 서버 간의 연결을 한 번 수행한 후, 하나의 요청에 대해 하나의 응답만 주고 받는 방식을 의미합니다.

  • 장점 : 서버 리소스를 효율적으로 관리할 수 있다는 점입니다. 이전의 클라이언트와의 연결을 유지하지 않기 때문에, 서버는 연결 상태를 계속 유지할 필요가 없어집니다. 만약 연결 유지가 필요한 경우, 일정 시간 뒤에 연결이 자동으로 닫히도록 타임아웃을 설정할 수 있습니다.
  • 단점 
    • 각각의 요청마다 새로운 연결을 수립해야 하기 때문에, 많은 요청과 응답이 반복되는 상황에서는 연결 수립에 따른 오버헤드가 발생할 수 있습니다. 
    • 이러한 오버헤드를 해결하기 위해 HTTP/1.1 이후에는 "Keep-Alive" 기능이 추가되었습니다. "Keep-Alive"를 사용하면 하나의 연결을 유지하여 여러 요청과 응답을 처리할 수 있게 됩니다.

'Back End > HTTP' 카테고리의 다른 글

[HTTP] 쿠키  (0) 2023.07.21
[HTTP] 상태코드 (aka. 200, 404 ...)  (0) 2023.07.19
[HTTP] HTTP 메서드 활용  (0) 2023.07.19
[HTTP] HTTP 메서드  (0) 2023.07.18
[HTTP] 인터넷 네트워크  (0) 2023.07.18