HTTP 에서 교환하는 정보를 HTTP 메시지라고 부른다. HTTP 메시지는 복수행(개행 문자는 CR+LF)의 데이터로 구성된 텍스트 문자열이다. HTTP 메시지는 메시지 헤더와 메시지 바디로 구분되어 있고 개행 문자로 헤더와 바디를 구분한다. 바디는 값이 없을 수도 있다.
https://developer.mozilla.org/ko/docs/Web/HTTP/Messages
리퀘스트 라인 : 리퀘스트에 사용하는 메소드와 리퀘스트 URI 와 사용하는 HTTP 버전이 포함된다.
POST / HTTP/1.1
상태 라인 : 리스폰스 결과를 나타내는 상태 코드와 설명, 사용하는 HTTP 버전이 포함된다.
HTTP/1.1 403 Forbidden
헤더 필드 : 리퀘스트와 리스폰스의 여러 조건과 속성 등을 나타내는 각종 헤더 필드가 포함된다. 일반 헤더 필드, 리퀘스트 헤더 필드, 리스폰스 헤더 필드, 엔티티 헤더 필드 등 4종류가 있다.
그 외 : HTTP 의 RFC 에는 없는 헤더 필드(쿠키 등)가 포함되는 경우도 있다.
HTTP 로 데이터를 전송할 때 그대로 전송할 수도 있지만 인코딩을 해서 전송하면 다량의 엑세스를 효율 좋게 처리하기 때문에 전송 효율을 높일 수 있다. 단, 컴퓨터에서 인코딩 처리를 해야하므로 CPU 등의 리소스는 더 많이 소비하게 된다.
메시지(message)
: HTTP 통신의 기본 단위로 옥텟 시퀀스(8비트)로 구성되고 통신을 통해서 전송된다.엔티티(entity)
: 리퀘스트랑 리스폰스의 페이로드(payload)로 전송되는 정보로 엔티티 헤더와 엔티티 바디로 구성된다.https://stackoverflow.com/questions/2273837/which-one-is-the-message-and-which-one-the-entity-in-http-terminology
HTTP 메시지 바디의 역할은 리퀘스트와 리스폰스에 관한 엔티티 바디를 운반하는 것이다. 기본적으로 메시지 바디와 엔티티 바디는 같지만 전송 코딩이 적용된 경우에는 엔티티 바디의 내용이 바뀌기 때문에 메시지 바디와 달라진다.
메일에 파일을 첨부해서 보내는 경우 용량을 줄이기 위해서 파일을 zip 으로 압축하고 보내기도 한다. HTTP 에는 이와 같이 메시지를 압축하는 과정을 콘텐츠 코딩(Content Codings)
이라고 부른다.
콘텐츠 코딩은 엔티티에 적용하는 인코딩을 가리키는데 엔티티 정보를 유지한채로 압축한다. 콘텐츠 코딩된 엔티티는 수신한 클라이언트 측에서 디코딩한다.