Что такое сущность HTTP?



кто-нибудь опишите мне, что именно http entity - это?



Я читаю документацию HTTPClient, но я действительно не понимаю, что это значит?

649   8  

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", что означает, как сжать сущность.

Это абстракцией, представляющей запрос или ответ грузоподъемностью. Элемент документация ясно на своей цели и различных типах сущности.

Я думаю, HTTPClient Entity называется в соответствии с HTTP сущности.

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

    Ничего не найдено.