[Network] HTTP란?

Kim Hyen Su·2024년 5월 29일

네트워크

목록 보기
6/7
post-thumbnail

HTTP


HTTP란?

HyperText Transfer Protocol이라고 하며, 서버/클라이언트 모델에서 데이터 통신을 위한 프로토콜을 말합니다.

HTTP는 인터넷에서 하이퍼텍스트를 교환하기 위한 통신 규약으로, 80번 포트를 사용합니다.

또한, HTTP는 TCP/IP 4계층에서 애플리케이션 계층의 프로토콜입니다.

특징은 간단하게 비연결성과 무상태성을 가지고 있습니다.

  • 비연결성 : I/O 관점에서 Stream이 연결되지 않은 상태를 말합니다. 이는 통신이 발생하지 않을 때, 자원의 낭비를 줄이기 위해서 입니다.
  • 무상태성 : 서버에서 클라이언트의 요청에 대한 정보를 저장하고 있지 않은 것을 말합니다.

무상태성(stateless)

해당 속성의 장점은 서버의 확장성에 유리합니다. 이는 클라이언트 측에서 요청한 정보를 하나의 서버에서 저장하게 될 경우, 스케일 아웃된 상황에서 다른 인스턴스에서 해당 요청 정보에 대해서 알 지 못하게 됩니다.

하지만, 로그인이 필요한 서비스의 경우에 로그인 상태를 유지하지 않을 경우 요청마다 사용자가 재로그인을 수행해야 하는 번거로움이 있습니다. 따라서, 이를 해결하기 위해서 쿠키, 세션 등을 사용하여 HTTP의 무상태성에서 상태성을 유지하려고 합니다.

HTTP 구조

start-line

  • HTTP 메서드
  • Path(요청 타겟의 URL)
  • HTTP 버전
  • 메타데이터를 저장하기 위한 공간입니다.
  • key와 value로 구성되어 있습니다.

body

  • 요청 또는 응답과 관련된 실제 데이터가 담기는 공간입니다.
profile
백엔드 서버 엔지니어

0개의 댓글