엔티티 바디(Entity Body)
- 전송하려는 실제 데이터(payload)
- JSON 데이터, 텍스트, 이미지 등 모든 형태의 데이터 가능
메시지 바디(Message Body)
- HTTP 프로토콜을 통해 전송되는 데이터
- 엔티티 바디를 포함 함
- 엔티티 바디가 인코딩(압축 등)될 수 있음
JSON 데이터 전송 예시
POST /submit HTTP/1.1
Host: example.com
Content-Type: application/json
Content-Length: 27
{
"name": "John",
"age": 30
}
- 엔티티 바디: {"name": "John", "age": 30} (전송하려는 실제 데이터)
- 메시지 바디: 엔티티 바디가 포함된 HTTP 메시지의 일부분. 이 경우에는 인코딩되지 않았으므로 엔티티 바디와 동일
단순 텍스트 전송 예시
HTTP/1.1 200 OK
Content-Type: text/plain
Content-Length: 13
Hello, world!
- 엔티티 바디: "Hello, world!" (전송하려는 실제 텍스트 데이터)
- 메시지 바디: 엔티티 바디가 포함된 HTTP 메시지의 일부분. 이 경우에는 인코딩되지 않았으므로 엔티티 바디와 동일
압축된 텍스트 전송 예시
HTTP/1.1 200 OK
Content-Type: text/plain
Content-Encoding: gzip
Content-Length: 34
<압축된 데이터>
- 엔티티 바디: "Hello, world!" (압축되지 않은 원본 텍스트 데이터)
- 메시지 바디: gzip으로 압축된 형태의 데이터. 이는 엔티티 바디를 압축한 결과
결론
- 엔티티 바디는 항상 전송하려는 '원본' 데이터를 의미
- 메시지 바디는 HTTP 메시지를 통해 실제로 전송되는 데이터
- 인코딩이 적용되지 않으면 메시지 바디와 엔티티 바디는 동일
- 인코딩이 적용되면 메시지 바디는 엔티티 바디를 변환(예: 압축)한 결과
따라서, JSON 예시에서 메시지 바디는 인코딩되지 않은 상태의 엔티티 바디와 동일하게 {"name": "John", "age": 30}이다. 텍스트 예시에서는 엔티티 바디가 "Hello, world!"이고, 메시지 바디도 동일하다. 하지만, 압축이 적용된 경우 메시지 바디는 "Hello, world!"를 압축한 데이터로 바뀐다.
'컴퓨터과학 🖥️ > 네트워크' 카테고리의 다른 글
[Network] HTTP와 연계하는 웹 서버 (0) | 2024.07.09 |
---|---|
[Network] HTTP 상태코드 (0) | 2024.07.02 |
[Network] HTTP 정보와 HTTP 메시지 (0) | 2024.07.02 |
[Network] 간단한 프로토콜 HTTP (0) | 2024.06.23 |
[Network] 웹과 HTTP (0) | 2024.06.18 |