HTTP 메시지 구조

Sangyeon·2022년 12월 4일
0

Web

목록 보기
3/7

HTTP 요청/응답 메시지 구조에 대한 포스팅 입니다.

HTTP 메시지 기본 구조

이 글의 예제에서는 터미널에서 아래 cURL 명령어를 실행하여 https://www.google.com/search?q=curl 에 GET 요청 시의 요청 메시지와 응답 메시지를 활용하였습니다.
(-v는 동작 상세를 출력하는 옵션으로, cURL 명령어 관련해서는 링크를 참고해주세요.)

$ curl -v https://www.google.com/search?q=curl

HTTP 요청 메시지

GET /search?q=curl HTTP/2
Host: www.google.com
user-agent: curl/7.79.1
accept: */*

시작 라인(start-line)

요청 메시지 자체를 담고 있습니다.

GET /search?q=curl HTTP/2

구성 요소

  • HTTP 메서드(GET, POST 등)
  • 요청 대상
  • HTTP 버전

HTTP 메서드 상세는 별도 포스팅으로 다룹니다.

헤더(header)

HTTP 전송에 필요한 모든 부가정보를 담고 있습니다.

Host: www.google.com
user-agent: curl/7.79.1
accept: */*

HTTP 헤더 상세는 별도 포스팅으로 다룹니다.

공백 라인(empty line)

메시지 본문(message body)

실제 전송할 데이터를 담고있습니다.
(이 글의 예제에서는 GET 요청으로, body가 없습니다.)

HTTP 응답 메시지

HTTP/2 403
content-type: text/html; charset=UTF-8
date: Tue, 06 Dec 2022 00:09:08 GMT
cache-control: private
x-xss-protection: 0
x-frame-options: SAMEORIGIN
vary: Accept-Encoding

<!DOCTYPE html><html lang=en>...생략</html>

(일부 헤더 및 본문 내용은 생략하였습니다.)

시작 라인(start-line)

응답 메시지 자체를 담고 있습니다.

HTTP/2 403

구성 요소

  • HTTP 버전
  • HTTP 상태코드(200, 400, 500 등)

HTTP 상태코드 상세는 별도 포스팅으로 다룹니다.

헤더(header)

HTTP 전송에 필요한 모든 부가정보를 담고 있습니다.

content-type: text/html; charset=UTF-8
date: Tue, 06 Dec 2022 00:09:08 GMT
cache-control: private
x-xss-protection: 0
x-frame-options: SAMEORIGIN
vary: Accept-Encoding

공백 라인(empty line)

메시지 본문(message body)

실제 전송할 데이터를 담고있습니다.
(이 글의 예제에서는 클라이언트 화면을 그리기 위한 HTML 코드가 메시지 본문이 됩니다.)

<!DOCTYPE html><html lang=en>...생략</html>

Reference

profile
I'm a constant learner.

0개의 댓글