Alguém poderia me descrever o que exatamente é uma entidade HTTP ?
Estou lendo a documentação do HTTPClient, mas não entendo realmente o que isso significa.
http
httpclient
Olá
fonte
fonte
Respostas:
Uma entidade HTTP é a maior parte de uma solicitação ou resposta HTTP, consistindo em alguns dos cabeçalhos e no corpo, se houver. Parece ser a solicitação ou resposta inteira sem a linha de solicitação ou status (embora apenas alguns campos de cabeçalho sejam considerados parte da entidade ).
Ilustrar; aqui está um pedido:
E uma resposta:
fonte
&
vez de&
. Não é uma entidade também? Qual é a diferença?&
é uma referência de entidade de caractere HTML , não o mesmo que uma Entidade HTTP .Aqui estão 3 casos simples:
Caso 1. Você está enviando 3 arquivos em uma única solicitação. Esses 3 arquivos são 3 entidades. Cada um deles tem seu próprio
Content-Type
para indicar que tipo de arquivo é.Caso 2. Você está visualizando uma página da web. O navegador baixou um arquivo html como entidade em segundo plano. Como a página pode ser atualizada continuamente, você pode obter uma entidade totalmente diferente mais tarde.
Caso 3. Você tem um
304 Not Modified
. Nenhuma entidade foi transferida.Em uma palavra, Entidade é uma carga útil opcional dentro de uma mensagem http (solicitação ou resposta), portanto, é uma relação " parte-todo " entre Entidade e Mensagem.
Alguns campos de cabeçalho para aplicar
Message
comoTransfer-Encoding
descrevem como para transferir mensagens entre intermediários, e, portanto, pode ser adicionado ou removido por qualquer aplicação ao longo da cadeia de pedido / resposta (hop-by-hop headers
). Em comparação, esses campos de cabeçalho se aplicam aEntity
algumas propriedades, que descrevem o tamanho da entidade, tipo, algoritmo de compressão, etc ...Leitura adicional, citando RFC 2616 seção 1.4, 4.5 e 4.3:
message-body = Transfer-Encoding( Content-Encoding(entity-body) )
onde
Transfer-Encoding
pode ser "fragmentado", que significa como transferir a mensagem, eContent-Encoding
pode ser "gzip" que significa como compactar a entidade.fonte
É uma abstração que representa uma carga útil de solicitação ou resposta . O JavaDoc é claro em sua finalidade e vários tipos de entidade.
fonte
Acho que o HTTPClient
Entity
é nomeado de acordo com a Entidade HTTP .fonte
HTTP é um protocolo observado ao acessar informações de uma máquina remota por meio de uma rede. Normalmente a rede é a Internet e a máquina remota é um servidor.
Quando você pede informações da pessoa A para a pessoa B, você envia uma mensagem a ela. (Solicitação). A pessoa B responde para você (resposta). Solicitação e resposta são tipos de mensagens HTTP.
A pessoa A pode pedir à pessoa B para fazer algo, em vez de pedir informações. Digamos que a pessoa A deseja que a pessoa B armazene um arquivo em um local seguro. Então, a Pessoa A passa esse arquivo (Entidade HTTP) para a Pessoa B e pede a ela para fazer algo (Mensagem HTTP). Nesse caso, Pessoa está passando uma "Entidade". No contexto da Entidade HTTP, é uma carga anexada à mensagem.
Espero que a analogia tenha ajudado.
fonte
Como disse em um comentário de @ hawkeye-parker, parece que o Entity foi preterido. Faça uma pesquisa neste rfc de 2014 e você verá sobre entidades XML e corpo de mensagem, mas nada sobre entidade Http.
No entanto, o HttpClient, mas também o cliente JaxRS, têm um método
setEntity()
egetEntity()
.Considerando a resposta aceita, ambas as bibliotecas estão erradas!
HttpClient.setEntity()
não removerá cabeçalhos configurados anteriormente.fonte
HttpEntity
é o que você vai passar em Request (com cabeçalho) e o que vai receber em Response. Para Get Request, estamos passando uma string simplesPara Post, vamos passar na Classe de Entidade completa
fonte
Entidade é algo como uma mensagem, consiste em um cabeçalho, onde estão os metadados como localização, idioma, codificação ...
E, opcionalmente, de um corpo - o conteúdo é formatado etc. conforme especificado no cabeçalho
fonte
Entre as boas respostas que temos aqui, creio que vale a pena citar algo que vem diretamente do RFC 2616 (Hypertext Transfer Protocol - HTTP / 1.1) :
Resumindo: uma Entidade pode ser transferida, e pode ser o cabeçalho + corpo ou apenas o cabeçalho .
Como existe o link acima, me detenho em fazer comentários adicionais.
fonte