본문 바로가기

CS

HTTP 메시지

Stateless

http의 두번째 특징, 상태가 없음 ⇒ 기억력이 없음

각각의 http 통신은 독립적 → 과거의 통신 내용을 전혀 기억하지 못함

해결 방법 : 매 통신마다 필요한 모든 정보를 담아서 요청을 보내야함

예시: 온라인 쇼핑몰에서 로고인 후 장바구니 페이지로 이동하는 등의 연속된 요청과 응답을 통한 데이터 처리가 필요한 경우를 위해 로고인 토큰 또는 브라우저의 쿠키, 세션, 로컬 스토리지 같은 기술이 필요에 의해 만들어 짐

HTTP 메시지 구조

Request메시지 구조

프론트(클라이언트)→백엔드(서버)

Start Line - Headers - Body

Start Line

요청의 첫번째줄 글의 제목과 같은 역할

  • HTTP method : 해당 요청이 의도한 액션을 정의하는 부분이며 GET, POST, DELETE 많이 쓰임
  • Request target : 요청이 전송되는 목표 url
  • HTTP version : 주로 1.1 버전이 널리쓰임

Headers

해당 요청에 대한 메타 데이터(추가 정보)를 담고 있는 부분

  • key : value 값으로 구성 {key:value}
  • Host : 요청을 보내는 웹사이트의 기본 주소
  • User - Agent : 요청을 보내는 클라이언트의 브라우저 정보
  • Content - Type : 해당 요청이 보내는 메시지 Body의 타입
  • Content - Length : Body 내용의 길이
  • Authorization : 회원의 인증/인가를 처리하기위해 로그인 토큰을 포함

Body

해당 요청의 실제 내용 요청 메서드에 따라 내용이 없을 수도 있습니다.

Response 메시지 구조

Status Line - Headers - Body

Status Line

ex) HTTP/1.1 200 success

응답의 첫 번째 줄에 해당, 요청에 대한 처리 상태를 클라이언트에게 알려줌

  • HTTP version : 요청한 HTTP 버전과 동일
  • Status Code : 응답 메시지의 상태코드
  • Status Text : 응답 메시지의 상태를 간략하게 설명해주는 텍스트

Headers

해당 요청과 동일하며 응답의 메타 데이터(추가 정보)를 담고 있는 부분

응답에서만 사용되는 헤더의 정보들이 있음

(요청하는 브라우저의 정보가 담긴 User-agent 대신 Server)

  • key : value 값으로 구성 {key:value}
  • Host : 요청을 보내는 웹사이트의 기본 주소

Body

일반적으로 요청의 Body와 동일

해당 요청의 실제 내용 요청 메서드에 따라 내용이 없을 수도 있듯이 응답도 응답 형태에 따라 데이터를 전송할 필요가 없는 경우 Body가 없을 수도 있다.

가장 많이 사용되는 Body data type ⇒ JSON( JavaScript Object Notation)

 

 

 


HTTP method

(GET, POST, DELETE 등)

GET: 웹페이지에 접속해서 필요한 데이터를 서버로부터 받아올 때 사용하는 메서드이며 가장 간단하고 많이 사용

POST : 데이터를 생성 및 수정할 때 주로 사용하는 메서드이며 대부분의 경우 요청에 body가 포함되어 보내짐 ⇒서버의 상태의 변화나 부작용을 이르킴

DELETE : 서버에서 지정된 특정 데이터를 삭제할 때 사용하는 메서드

HEAD : GET메서드와 동일한 응답을 요구하지만, 응답 본문을 포함하지 않는다.

PUT : 목적 리소스 모든 현재 표시를 payload로 바꾼다.

payload→ 전송되는 데이터, 데이터를 전송할 때, 헤더와 메타데이터, 에러 체크 비트 등과 같은 다양한 요소들을 함께 보내어, 데이터 전송의 효율과 안정성을 높히게 됩니다. 이 때, 보내고자 하는 데이터자체

CONNECT : 목적 리소스로 식별되는 서버로의 터널을 맺습니다

OPTIONS : 목적 리소스의 통신을 설정하는데 쓰임 TRACE : 목적리소스의 경로를 따라 메시지 loop-back 테스트를 함 PATCH : 리소스의 부분만을 수정하는데 쓰임

'CS' 카테고리의 다른 글

Layered pattern  (0) 2023.03.26
인터넷 동작원리  (0) 2023.03.24
RESTful API  (0) 2023.03.23
CORS  (0) 2023.03.22
동기 & 비동기  (0) 2023.03.15