8 ответов:
An http entity - это большая часть HTTP-запроса или ответа, состоящая из некоторые заголовки и тело, если она присутствует. Это, кажется, весь запрос или ответ без запроса или строки состояния (хотя только некоторые поля заголовка считаются частью лица).
чтобы проиллюстрировать; вот запрос:
POST /foo HTTP/1.1 # Not part of the entity. Content-Type: text/plain # ┬ The entity is from this line down... Content-Length: 1234 # │ # │ Hello, World! ... # ┘и в ответ:
HTTP/1.1 200 OK # Not part of the entity. Content-Length: 438 # ┬ The entity is from this line down... Content-Type: text/plain # │ # │ Response body ... # ┘
вот 3 простых случаях:
корпус 1. Вы загружаете 3 файла в одном запросе. Эти 3 файла - это 3 сущности. У каждого из них своя
Content-Typeчтобы указать, что это за файл.корпус 2. Вы просматриваете веб-страницу. Браузер загрузил html-файл в качестве объекта в фоновом режиме. Поскольку страница может постоянно обновляться, вы можете получить совершенно другую сущность позже.
корпус 3. У тебя есть
304 Not Modified. Никакой сущности не было переданный.одним словом, Entity-это необязательная полезная нагрузка внутри http-сообщения(либо запрос, либо ответ), так что это "часть-целое " связь между сущностью и сообщением.
некоторые поля заголовка применяются к
MessageкакTransfer-Encodingопишите, как передавать сообщения между посредниками, и таким образом может быть добавлен или удален любым приложением по цепочке запрос / ответ (hop-by-hop headers). Для сравнения, эти поля заголовка применяются кEntityнекоторые свойства, которые характеризуют размер предприятия, тип, алгоритм сжатия и т. д...дальнейшее чтение, цитируя из RFC 2616 раздел 1.4, 4.5 и 4.3:
- цепочка запросов/ответов
request chain --------------------------------------> UA -----v----- A -----v----- B -----v----- C -----v----- O <------------------------------------- response chainна рисунке выше показаны три посредника (A, B и C) между агентом пользователя и исходным сервером. Запрос или ответное сообщение, которое проходит через всю цепочку, будет проходить через четыре отдельных подключение.
- поля заголовка для сообщения или сущности
есть несколько полей заголовка, которые имеют общую применимость как для запросов и ответов, но которые не относятся к юридическое лицо, которому передается. Эти поля заголовка применяются только к сообщение передается.
- поля заголовка для сообщения могут быть изменены вдоль цепь
кодирование передачи должно использоваться для указания любых кодировок передачи, применяемых приложением для обеспечения безопасной и правильной передачи сообщения. Transfer-Encoding является свойством сообщения, а не сущности, и поэтому может быть добавлен или удален любым приложением по цепочке запрос/ответ.
- связь между телом сообщения и сущность тело
message-body = Transfer-Encoding( Content-Encoding(entity-body) )здесь
Transfer-Encodingможет быть "chunked", что означает, как передать сообщение, иContent-Encodingможет быть "gzip", что означает, как сжать сущность.
Это абстракцией, представляющей запрос или ответ грузоподъемностью. Элемент документация ясно на своей цели и различных типах сущности.
HTTP-это протокол, который соблюдается при доступе к информации с удаленного компьютера через сеть. Обычно сеть-это интернет, а удаленная машина-сервер.
когда вы просите информацию от человека а к человеку б, вы даете ему сообщение. (Запрос.) Человек Б отвечает вам (ответ). Запрос и ответ-это типы сообщений HTTP.
человек A может попросить человека B сделать что-то, вместо того, чтобы запрашивать информацию. Скажем, человек а хочет человека Б чтобы сохранить файл в безопасном месте. Итак, человек A передает этот файл(http Entity) человеку B и просит его что-то сделать (HTTP Message). В этом случае человек передает "сущность". В контексте сущности HTTP это полезная нагрузка, прикрепленная к сообщению.
надеюсь, что аналогия помогла.
как сказано в комментарии @hawkeye-parker, похоже, что Entity была устаревшей. Сделайте поиск в этом 2014 rfc, и вы увидите о сущностях XML и теле сообщения, но ничего о сущности Http.
тем не менее, HttpClient, но и клиент JaxRS, имеют
setEntity()иgetEntity()метод.если принять во внимание принято отвечать, обе библиотеки не правы !
HttpClient.setEntity()не будет удалять ранее установленные заголовки.
сущность-это что-то вроде сообщения, она состоит из заголовка, где находятся метаданные,такие как location,lang, encoding ...
и необязательно тела-его содержимое формируется и т. д., Как указано в заголовке
среди хороших ответов, которые мы имеем здесь, я считаю, что стоит упомянуть то, что исходит непосредственно из RFC 2616 (протокол передачи гипертекста-HTTP / 1.1):
сущности
сообщения запроса и ответа могут передавать объект, если не иначе ограничено методом запроса или кодом состояния ответа. сущность состоит полей заголовка сущности и тела сущности, хотя некоторые ответы будут включать только заголовки сущностей.
в двух словах: объект может быть передан, и это может быть заголовок + тело, или просто заголовок.
Так как есть ссылка выше, я задерживаю себя на дополнительных комментариях.
Comments