✊ Feel5ny
Back to Posts
2019년 8월 15일

HTTP 메세지 - 개요

HTTP 메세지 - 개요

HTTP 메서지에 대해서 알아본다. 메세지는 세 덩어리로 나눌 수 있다 시작줄, 헤더, 본문. 시작줄은 요청과 응답에 따라 다르다. 요청의 시작줄에는 서버에 요구할 동작을 명시하는 메서드, 리소스의 위치를 알려줄 URL, 프로토콜 버전을 명시한다. 응답의 시작줄에는 버전과 처리 결과에 대한 상태코드, 사유구절이 명시되어있다. 다음 줄에는 헤더가 존재한다. 헤더는 일반헤더, 요청헤더, 응답헤더, 확장헤더, entity헤더로 구분할 수 있다. RFC 7231에서는 요청 헤더와 응답 헤더로 나눠서 설명한다. 헤더와 본문 사이에는 꼭 한 줄을 비워두어야한다.(CRLF) 본문은 옵셔널하다. 있을 때도 있고 없을 때도 있다. 메세지의 흐름을 설명하는 용어가 존재하는데, 상대적으로 표현된다. 서버를 기준으로 외부 클라에서 서버로(안으로) 흐르는 메세지를 인바운드, 서버에서 클라로(밖으로) 나가는 메세지를 아웃바운드라고 하며, 발신자를 기준으로 발신자에서 수신자의 방향을 다운스트림, 그 반대를 업스트림이라고 한다.


1. 메세지의 흐름

HTTP 메세지는 HTTP 메세지 간에 주고받은 데이터의 블록들이다

1.1 인바운드 - 아웃바운드

1.2 업스트림 - 다운스트림


2. 메세지의 문법

  1. 요청 버전은 프로토콜 버전
<메서드> <요청 URL> <버전> <헤더> <엔터티 본문>
  1. 응답
<버전> <상태 코드> <사유 구절> <헤더> <엔터티 본문>

3. 메세지의 각 부분

3.1 시작줄과 헤더

아스키 문자열 ? 미국정보교환표준부호(영어: American Standard Code for Information Interchange), 또는 줄여서 ASCII( /ˈæski/, 아스키)는 영문 알파벳을 사용하는 대표적인 문자 인코딩이다. 아스키는 컴퓨터와 통신 장비를 비롯한 문자를 사용하는 많은 장치에서 사용되며, 대부분의 문자 인코딩이 아스키에 기초를 두고 있다.

아스키코드 10 LF ( Line Feed => 다음 줄로) 13 CR ( Cariage Return => 제일 처음 칸으로)

3.1 시작줄

3.1.1 요청줄

요청 메세지는 서버에게 리소스에 대해 무언가를 해달라고 부탁한다. 요청 메세지는

모든 필드는 공백으로 구분된다.

3.1.1.1 메서드

  1. GET - 서버에서 어떤 문서를 가져온다.
  2. HEAD - 서버에서 어떤 문서에 대한 헤더만 가져온다.
  3. POST - 서버가 처리해야 할 데이터를 보낸다.
  4. PUT - 서버에 요청 메세지의 본문을 저장한다.
  5. TRACE - 메세지가 프락시를 거처 서버에 도달하는 과정을 추적한다.
  6. OPTIONS - 서버가 어떤 메서드를 수행할 수 있는지 확인한다.
  7. DELETE - 서버에서 문서를 제거한다.

3.1.1.2 버전

버전 번호는 HTTP로 대화하는 어플리케이션들에게 대화 상대의 능력과 메세지의 형식에 대한 단서를 제공하기 위한 것이다.

3.1.2 응답줄

응답 메세지는 수행 결과에 대한

응답 메세지의 시작줄, 즉 응답줄은

모든 필드는 공백으로 구분된다.

3.1.2.1 상태코드

3.1.2.2 사유구절

3.2 헤더

3.2.1 헤더 분류

3.2.1.2 일반 헤더

3.2.1.3 요청 헤더

3.2.1.4 응답 헤더

3.2.1.5 Entity 헤더

3.2.1.6 확장 헤더

3.2 본문


3. 엔터티 본문


Related

© 2025 Felix