HTTP

김현송·2023년 2월 28일
0

네트워크

목록 보기
3/10

기반 프로토콜

  • TCP : HTTP/1.1, HTTP/2
  • UDP : HTTP/3
  • 현재는 HTTP/1.1을 주로 사용합니다.




HTTP 특징

- 클라이언트 서버 구조

Request Response 구조라 합니다.

클라이언트는 서버에 요청을 보내고 서버는 요청받은 내용에 대한 결과를 응답합니다.



- 무상태 프로토콜(stateless), 비연결성

무상태 프로토콜(이하 Stateless)은 서버가 클라이언트의 상태를 보존하지 않습니다

서버가 클라이언트의 상태를 보존하고 있으면 어떻게 될까요?(Stateful)

대용량 트래픽이 발생한다면 리소스가 매우 많이 필요합니다.

장점

Stateless는 요청과 응답 이후 클라이언트의 상태를 끊기때문에 다른 클라이언트의 요청에 응답할 수 있는 상태가 됩니다. 다시말해 서버 확장성이 높습니다. 또한 서버가 장애가 일어난다면, 중계 서버를 통해 같은 기능을 하는 다른 서버로 요청을 전달하여 통신할 수 있습니다.

단점

단점으로는 클라이언트가 추가 데이터를 계속해서 전송해야 합니다. ( 서버가 클라이언트 상태를 계속 모르기 때문 )

실무적 한계

비즈니스 로직상 모든 것을 무상태로 설계할 수 없는 경우도 있습니다.

HTTP 지속 연결(Persistent Connections)

초기 연결과 종료를 반복하는 HTTP 통신의 낭비를 줄이기 위해 만들어졌습니다.




- HTTP 메시지

HTTP 메시지 구조

  • start-line

    • 요청 메시지 : HTTP 메서드 + 요청 대상(path) + HTTP Version
    • 응답 메시지 : HTTP 버전 + HTTP 상태코드 + 이유문구
  • header

    • 표준 헤더가 많아서 필요시 임의로 추가 가능합니다.
  • empty line (줄바꿈)

  • message body

    • 실제 전송할 데이터

profile
안녕하세요

0개의 댓글