Teste de segurança - campos de cabeçalho HTTP
Campos de cabeçalho HTTP
Os campos de cabeçalho HTTP fornecem informações necessárias sobre a solicitação ou resposta, ou sobre o objeto enviado no corpo da mensagem. Existem quatro tipos de cabeçalhos de mensagens HTTP -
General-header - Esses campos de cabeçalho têm aplicabilidade geral para mensagens de solicitação e resposta.
Client Request-header - Esses campos de cabeçalho são aplicáveis apenas para mensagens de solicitação.
Server Response-header - Esses campos de cabeçalho são aplicáveis apenas para mensagens de resposta.
Entity-header - Esses campos de cabeçalho definem metainformações sobre o corpo da entidade ou, se o corpo não estiver presente.
Cabeçalhos Gerais
Vamos agora examinar os cabeçalhos gerais em detalhes.
Cache-control
O campo de cabeçalho geral Cache-Control é usado para especificar as diretivas que devem ser obedecidas por todos os sistemas de cache. A sintaxe é a seguinte -
Cache-Control : cache-request-directive|cache-response-directive
Clientes ou servidores HTTP podem usar o Cache-controlcabeçalho geral para especificar parâmetros para o cache ou para solicitar certos tipos de documentos do cache. As diretivas de armazenamento em cache são especificadas em uma lista separada por vírgulas. Por exemplo -
Cache-control: no-cache
Seguem-se importantes diretivas de solicitação de cache que podem ser usadas pelo cliente em sua solicitação HTTP -
S.No. | Diretiva e descrição de solicitação de cache |
---|---|
1 | no-cache Um cache não deve usar a resposta para satisfazer uma solicitação subsequente sem revalidação bem-sucedida com o servidor de origem. |
2 | no-store O cache não deve armazenar nada sobre a solicitação do cliente ou a resposta do servidor. |
3 | max-age = seconds Indica que o cliente está disposto a aceitar uma resposta cuja idade não seja maior que o tempo especificado em segundos. |
4 | max-stale [ = seconds ] Indica que o cliente está disposto a aceitar uma resposta que excedeu o tempo de expiração. Se segundos forem dados, não deve expirar por mais do que esse tempo. |
5 | min-fresh = seconds Indica que o cliente está disposto a aceitar uma resposta cujo tempo de vida de atualização não seja menor que a idade atual mais o tempo especificado em segundos. |
6 | no-transform Não converta o corpo-entidade. |
7 | only-if-cached Não recupere novos dados. O cache pode enviar um documento apenas se estiver no cache e não deve contatar o servidor de origem para ver se existe uma cópia mais recente. |
Seguem-se importantes diretivas de resposta de cache que podem ser usadas pelo servidor em sua resposta HTTP -
S.No. | Diretiva e descrição de solicitação de cache |
---|---|
1 | public Indica que a resposta pode ser armazenada em cache por qualquer cache. |
2 | private Indica que toda ou parte da mensagem de resposta é destinada a um único usuário e não deve ser armazenada em cache por um cache compartilhado. |
3 | no-cache Um cache não deve usar a resposta para satisfazer uma solicitação subsequente sem revalidação bem-sucedida com o servidor de origem. |
4 | no-store O cache não deve armazenar nada sobre a solicitação do cliente ou a resposta do servidor. |
5 | no-transform Não converta o corpo-entidade. |
6 | must-revalidate O cache deve verificar o status dos documentos desatualizados antes de usá-lo e um que tenha expirado não deve ser usado. |
7 | proxy-revalidate A diretiva proxy-revalidate tem o mesmo significado que a diretiva must-revalidate, exceto que não se aplica a caches de agente de usuário não compartilhados. |
8 | max-age = seconds Indica que o cliente está disposto a aceitar uma resposta cuja idade não seja maior que o tempo especificado em segundos. |
9 | s-maxage = seconds A idade máxima especificada por esta diretiva substitui a idade máxima especificada pela diretiva max-age ou pelo cabeçalho Expires. A diretiva s-maxage é sempre ignorada por um cache privado. |
Conexão
O campo de cabeçalho geral de conexão permite que o remetente especifique as opções desejadas para aquela conexão específica e não devem ser comunicadas por proxies em outras conexões. A seguir está a sintaxe simples de usar um cabeçalho de conexão -
Connection : "Connection"
HTTP / 1.1 define a opção de conexão "fechar" para o remetente sinalizar que a conexão será fechada após a conclusão da resposta. Por exemplo -
Connection: close
Por padrão, o HTTP 1.1 usa conexões persistentes, onde a conexão não fecha automaticamente após uma transação. O HTTP 1.0, por outro lado, não possui conexões persistentes por padrão. Se um cliente 1.0 deseja usar conexões persistentes, ele usa okeep-alive parâmetro da seguinte forma -
Connection: keep-alive
Encontro
Todos os carimbos de data / hora HTTP DEVEM ser representados no horário de Greenwich (GMT), sem exceção. Os aplicativos HTTP têm permissão para usar qualquer uma das três representações de carimbos de data / hora a seguir -
Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123
Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036
Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() format
Aqui, o primeiro formato é o mais preferido.
Pragma
O campo de cabeçalho geral Pragma é usado para incluir diretivas específicas de implementação que podem ser aplicadas a qualquer destinatário ao longo da cadeia de solicitação / resposta. Por exemplo -
Pragma: no-cache
A única diretiva definida em HTTP / 1.0 é a diretiva no-cache e é mantida em HTTP 1.1 para compatibilidade com versões anteriores. Nenhuma nova diretiva Pragma será definida no futuro.
Reboque
O valor do campo geral Trailer indica que o determinado conjunto de campos de cabeçalho está presente no trailer de uma mensagem codificada com codificação de transferência em partes. A seguir está a sintaxe simples de usar um campo de cabeçalho de trailer -
Trailer : field-name
Os campos de cabeçalho de mensagem listados no campo de cabeçalho do trailer não devem incluir os seguintes campos de cabeçalho -
- Transfer-Encoding
- Content-Length
- Trailer
Transfer-Encoding
O campo de cabeçalho geral Transfer-Encoding indica que tipo de transformação foi aplicada ao corpo da mensagem para transferi-la com segurança entre o remetente e o destinatário. Isso não é o mesmo que codificação de conteúdo porque as codificações de transferência são uma propriedade da mensagem, não do corpo da entidade. A sintaxe a seguir mostra o uso do campo de cabeçalho Transfer-Encoding -
Transfer-Encoding: chunked
Todos os valores de codificação de transferência não diferenciam maiúsculas de minúsculas.
Melhoria
O cabeçalho geral de atualização permite que o cliente especifique quais protocolos de comunicação adicionais ele suporta e gostaria de usar se o servidor achar apropriado alternar protocolos. Por exemplo -
Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11
O campo de cabeçalho de atualização se destina a fornecer um mecanismo simples para a transição de HTTP / 1.1 para algum outro protocolo incompatível
Através da
O cabeçalho geral Via deve ser usado por gateways e proxies para indicar os protocolos e destinatários intermediários. Por exemplo, uma mensagem de solicitação pode ser enviada de um agente de usuário HTTP / 1.0 para um proxy interno chamado "fred", que usa HTTP / 1.1 para encaminhar a solicitação a um proxy público em nowhere.com, que conclui a solicitação por encaminhá-lo para o servidor de origem emhttps://www.ics.uci.edu/. A solicitação recebida por www.ics.uci.edu teria então o seguinte campo de cabeçalho Via -
Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)
O campo de cabeçalho de atualização se destina a fornecer um mecanismo simples para a transição de HTTP / 1.1 para algum outro protocolo incompatível
Atenção
O cabeçalho geral de Aviso é usado para transportar informações adicionais sobre o status ou transformação de uma mensagem que pode não estar refletida na mensagem. Uma resposta pode conter mais de um cabeçalho de Aviso.
Warning : warn-code SP warn-agent SP warn-text SP warn-date
Cabeçalhos de solicitação de cliente
Aceitar
O campo Aceitar cabeçalho da solicitação pode ser usado para especificar certos tipos de mídia que são aceitáveis para a resposta. A seguir está a sintaxe geral -
Accept: type/subtype [q = qvalue]
Vários tipos de mídia podem ser listados separados por vírgulas e o qvalue opcional representa um nível de qualidade aceitável para aceitar tipos em uma escala de 0 a 1. A seguir está um exemplo -
Accept: text/plain; q = 0.5, text/html, text/x-dvi; q = 0.8, text/x-c
Isso seria interpretado como text/html e text/x-c são os tipos de mídia preferidos, mas se eles não existirem, envie o text/x-dvi entidade, e se esta não existir, envie o text/plain entidade.
Accept-Charset
O campo de cabeçalho de solicitação Accept-Charset pode ser usado para indicar quais conjuntos de caracteres são aceitáveis para a resposta. A seguir está a sintaxe geral -
Accept-Charset: character_set [q = qvalue]
Vários conjuntos de caracteres podem ser listados separados por vírgulas e o qvalue opcional representa um nível de qualidade aceitável para conjuntos de caracteres não preferidos em uma escala de 0 a 1. A seguir está um exemplo -
Accept-Charset: iso-8859-5, unicode-1-1; q = 0.8
O valor especial "*", se presente no Accept-Charset campo, corresponde a cada conjunto de caracteres e se não Accept-Charset cabeçalho estiver presente, o padrão é que qualquer conjunto de caracteres seja aceitável.
Aceitar-Codificação
O campo de cabeçalho de solicitação Accept-Encoding é semelhante a Aceitar, mas restringe as codificações de conteúdo que são aceitáveis na resposta. A seguir está a sintaxe geral -
Accept-Encoding: encoding types
A seguir estão os exemplos -
Accept-Encoding: compress, gzip
Accept-Encoding:
Accept-Encoding: *
Accept-Encoding: compress;q = 0.5, gzip;q = 1.0
Accept-Encoding: gzip;q = 1.0, identity; q = 0.5, *;q = 0
Accept-Language
O campo do cabeçalho da solicitação Accept-Language é semelhante a Accept, mas restringe o conjunto de linguagens naturais que são preferidas como resposta à solicitação. A seguir está a sintaxe geral -
Accept-Language: language [q = qvalue]
Vários idiomas podem ser listados separados por vírgulas e o qvalue opcional representa um nível de qualidade aceitável para idiomas não preferidos em uma escala de 0 a 1. A seguir está um exemplo -
Accept-Language: da, en-gb;q = 0.8, en;q = 0.7
Autorização
O valor do campo Authorization request-header consiste em credenciais contendo as informações de autenticação do agente do usuário para a região do recurso que está sendo solicitado. A seguir está a sintaxe geral -
Authorization : credentials
A especificação HTTP / 1.0 define o esquema de autorização BASIC, onde o parâmetro de autorização é a string de username:password codificado na base 64. A seguir está um exemplo -
Authorization: BASIC Z3Vlc3Q6Z3Vlc3QxMjM =
O valor decodifica em é guest:guest123 Onde guest é o ID do usuário e guest123 é a senha.
Bolacha
O valor do campo Cookie request-header contém um par nome / valor de informações armazenadas para esse URL. A seguir está a sintaxe geral -
Cookie: name = value
Vários cookies podem ser especificados separados por ponto e vírgula da seguinte forma -
Cookie: name1 = value1;name2 = value2;name3 = value3
Espero
O campo Expect request-header é usado para indicar que comportamentos de servidor específicos são exigidos pelo cliente. A seguir está a sintaxe geral -
Expect : 100-continue | expectation-extension
Se um servidor receber uma solicitação contendo um campo Expect que inclui uma extensão de expectativa não compatível, ele deve responder com um status 417 (Expectation Failed).
De
O campo do cabeçalho da solicitação De contém um endereço de e-mail da Internet para o usuário humano que controla o agente do usuário solicitante. A seguir está um exemplo simples -
From: [email protected]
Este campo de cabeçalho pode ser usado para fins de registro e como um meio de identificar a origem de solicitações inválidas ou indesejadas.
Hospedeiro
O campo de cabeçalho de solicitação do Host é usado para especificar o host da Internet e o número da porta do recurso que está sendo solicitado. A seguir está a sintaxe geral -
Host : "Host" ":" host [ ":" port ] ;
UMA hostsem nenhuma informação de porta final implica a porta padrão, que é 80. Por exemplo, uma solicitação no servidor de origem para http://www.w3.org/pub/WWW/ seria -
GET /pub/WWW/ HTTP/1.1
Host: www.w3.org
If-Match
O campo de cabeçalho de solicitação If-Match é usado com um método para torná-lo condicional. Este cabeçalho solicita que o servidor execute o método solicitado apenas se o valor fornecido nesta tag corresponder às tags de entidade representadas porETag. A seguir está a sintaxe geral -
If-Match : entity-tag
Um asterisco (*) corresponde a qualquer entidade e a transação continua apenas se a entidade existir. A seguir estão os exemplos possíveis -
If-Match: "xyzzy"
If-Match: "xyzzy", "r2d2xxxx", "c3piozzzz"
If-Match: *
Se nenhuma das tags de entidade corresponder, ou se "*" for fornecido e nenhuma entidade atual existir, o servidor não deve executar o método solicitado e deve retornar uma resposta 412 (Falha de pré-condição).
Se-Modificado-Desde
O campo de cabeçalho de solicitação If-Modified-Since é usado com um método para torná-lo condicional. Se a URL solicitada não foi modificada desde o tempo especificado neste campo, uma entidade não será retornada do servidor; em vez disso, uma resposta 304 (não modificada) será retornada sem qualquer corpo de mensagem. A seguir está a sintaxe geral -
If-Modified-Since : HTTP-date
Um exemplo do campo é -
If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT
Se nenhuma das tags de entidade corresponder, ou se "*" for fornecido e nenhuma entidade atual existir, o servidor não deve executar o método solicitado e deve retornar uma resposta 412 (Falha de pré-condição).
If-None-Match
O campo de cabeçalho de solicitação If-None-Match é usado com um método para torná-lo condicional. Este cabeçalho solicita que o servidor execute o método solicitado apenas se um dos valores fornecidos nesta tag corresponder às tags de entidade fornecidas representadas porETag. A seguir está a sintaxe geral -
If-None-Match : entity-tag
Um asterisco (*) corresponde a qualquer entidade e a transação continua apenas se a entidade não existir. A seguir estão os exemplos possíveis -
If-None-Match: "xyzzy"
If-None-Match: "xyzzy", "r2d2xxxx", "c3piozzzz"
If-None-Match: *
If-Range
O campo de cabeçalho de solicitação If-Range pode ser usado com um GET condicional para solicitar apenas a parte da entidade que está faltando, se não tiver sido alterada, e a entidade inteira se ela tiver sido alterada. A seguir está a sintaxe geral -
If-Range : entity-tag | HTTP-date
Tanto uma tag de entidade quanto uma data podem ser usadas para identificar a entidade parcial já recebida. Por exemplo -
If-Range: Sat, 29 Oct 1994 19:43:31 GMT
Aqui, se o documento não foi modificado desde a data fornecida, o servidor retorna o intervalo de bytes fornecido pelo cabeçalho Range, caso contrário, ele retorna todo o novo documento.
If-Unmodified-Since
O campo de cabeçalho de solicitação If-Unmodified-Since é usado com um método para torná-lo condicional. A seguir está a sintaxe geral -
If-Unmodified-Since : HTTP-date
Se o recurso solicitado não foi modificado desde o tempo especificado neste campo, o servidor deve realizar a operação solicitada como se o cabeçalho If-Unmodified-Since não estivesse presente. Por exemplo -
If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT
Se a solicitação normalmente resultaria em algo diferente de um status 2xx ou 412, o cabeçalho If-Unmodified-Since deve ser ignorado.
Max-Forwards
O campo de cabeçalho de solicitação Max-Forwards fornece um mecanismo com os métodos TRACE e OPTIONS para limitar o número de proxies ou gateways que podem encaminhar a solicitação para o próximo servidor de entrada. A seguir está a sintaxe geral -
Max-Forwards : n
O valor Max-Forwards é um número inteiro decimal que indica o número restante de vezes que essa mensagem de solicitação pode ser encaminhada. Isso é útil para depuração com o método TRACE, evitando loops infinitos. Por exemplo -
Max-Forwards : 5
O campo de cabeçalho Max-Forwards pode ser ignorado para todos os outros métodos definidos na especificação HTTP.
Autorização Proxy
O campo de cabeçalho de solicitação Proxy-Authorization permite que o cliente se identifique (ou seu usuário) para um proxy que requer autenticação. A seguir está a sintaxe geral -
Proxy-Authorization : credentials
O valor do campo Proxy-Authorization consiste em credenciais contendo as informações de autenticação do agente do usuário para o proxy e / ou domínio do recurso que está sendo solicitado.
Alcance
O campo de cabeçalho de solicitação de intervalo especifica os intervalos parciais do conteúdo solicitado do documento. A seguir está a sintaxe geral -
Range: bytes-unit = first-byte-pos "-" [last-byte-pos]
O valor da posição do primeiro byte em uma especificação de intervalo de bytes fornece o deslocamento de byte do primeiro byte em um intervalo. O valor pos do último byte fornece o deslocamento de byte do último byte no intervalo; ou seja, as posições de byte especificadas são inclusivas. Você pode especificar uma unidade de byte como bytes Os deslocamentos de bytes começam em zero. A seguir estão alguns exemplos simples -
- The first 500 bytes
Range: bytes = 0-499
- The second 500 bytes
Range: bytes = 500-999
- The final 500 bytes
Range: bytes = -500
- The first and last bytes only
Range: bytes = 0-0,-1
Vários intervalos podem ser listados, separados por vírgulas. Se o primeiro dígito no (s) intervalo (s) de bytes separados por vírgula estiver faltando, o intervalo será considerado a partir do final do documento. Se o segundo dígito estiver faltando, o intervalo será o byte n até o final do documento.
Referer
O campo Referer request-header permite que o cliente especifique o endereço (URI) do recurso do qual a URL foi solicitada. A seguir está a sintaxe geral -
Referer : absoluteURI | relativeURI
A seguir está um exemplo simples -
Referer: http://www.tutorialspoint.org/http/index.htm
Se o valor do campo for um URI relativo, ele deve ser interpretado em relação ao URI de solicitação .
TE
O campo de cabeçalho de solicitação TE indica qual codificação de transferência de extensão ele está disposto a aceitar na resposta e se está ou não disposto a aceitar campos de trailer em uma codificação de transferência em partes . A seguir está a sintaxe geral -
TE: t-codings
A presença da palavra-chave "trailers" indica que o cliente está disposto a aceitar campos de trailer em uma codificação de transferência em partes e é especificada de uma das maneiras -
TE: deflate
TE:
TE: trailers, deflate;q = 0.5
Se o valor do campo TE estiver vazio ou se nenhum campo TE estiver presente, a única codificação de transferência é fragmentada . Uma mensagem sem codificação de transferência é sempre aceitável.
Agente de usuário
O campo de cabeçalho de solicitação do Agente do Usuário contém informações sobre o agente do usuário que originou a solicitação. A seguir está a sintaxe geral -
User-Agent : product | comment
Example
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Cabeçalhos de resposta do servidor
Eles são um dado -
Intervalos de aceitação
O campo de cabeçalho de resposta Accept-Ranges permite que o servidor indique sua aceitação de solicitações de intervalo para um recurso. A seguir está a sintaxe geral -
Accept-Ranges : range-unit | none
Por exemplo, um servidor que aceita solicitações de intervalo de bytes pode enviar
Accept-Ranges: bytes
Os servidores que não aceitam qualquer tipo de solicitação de intervalo para um recurso podem enviar -
Accept-Ranges: none
Isso aconselhará o cliente a não tentar uma solicitação de intervalo.
Era
O campo de cabeçalho de resposta Age transmite a estimativa do remetente da quantidade de tempo desde que a resposta (ou sua revalidação) foi gerada no servidor de origem. A seguir está a sintaxe geral -
Age : delta-seconds
Os valores de idade são inteiros decimais não negativos, representando o tempo em segundos. A seguir está um exemplo simples -
Age: 1030
Um servidor HTTP / 1.1 que inclui um cache deve incluir um campo de cabeçalho Age em cada resposta gerada a partir de seu próprio cache.
ETag
O campo de cabeçalho de resposta ETag fornece o valor atual da tag de entidade para a variante solicitada. A seguir está a sintaxe geral -
ETag : entity-tag
A seguir estão exemplos simples -
ETag: "xyzzy"
ETag: W/"xyzzy"
ETag: ""
Localização
O campo de cabeçalho de resposta de localização é usado para redirecionar o destinatário para um local diferente do URI de solicitação para conclusão. A seguir está a sintaxe geral -
Location : absoluteURI
A seguir está um exemplo simples -
Location: http://www.tutorialspoint.org/http/index.htm
O campo de cabeçalho Content-Location difere de Location porque Content-Location identifica o local original da entidade incluída na solicitação.
Proxy-Authenticate
O campo de cabeçalho de resposta Proxy-Authenticate deve ser incluído como parte de uma resposta 407 (Autenticação de proxy necessária). A seguir está a sintaxe geral -
Proxy-Authenticate : challenge
Tentar novamente depois
O campo de cabeçalho de resposta Retry-After pode ser usado com uma resposta 503 (Serviço Indisponível) para indicar por quanto tempo o serviço deve ficar indisponível para o cliente solicitante. A seguir está a sintaxe geral -
Retry-After : HTTP-date | delta-seconds
A seguir estão dois exemplos simples -
Retry-After: Fri, 31 Dec 1999 23:59:59 GMT
Retry-After: 120
No último exemplo, o atraso é de 2 minutos.
Servidor
O campo de cabeçalho de resposta do servidor contém informações sobre o software usado pelo servidor de origem para lidar com a solicitação. A seguir está a sintaxe geral -
Server : product | comment
A seguir está um exemplo simples -
Server: Apache/2.2.14 (Win32)
Se a resposta estiver sendo encaminhada por meio de um proxy, o aplicativo proxy não deve modificar o cabeçalho de resposta do servidor.
Set-Cookie
O campo de cabeçalho de resposta Set-Cookie contém um par nome / valor de informações a serem retidas para este URL. A seguir está a sintaxe geral -
Set-Cookie: NAME = VALUE; OPTIONS
O cabeçalho de resposta Set-Cookie compreende o token Set-Cookie :, seguido por uma lista separada por vírgulas de um ou mais cookies. Aqui estão os valores possíveis que você pode especificar como opções -
S.No. | Opções e descrição |
---|---|
1 | Comment = comment Esta opção pode ser usada para especificar qualquer comentário associado ao cookie. |
2 | Domain = domain O atributo Domain especifica o domínio para o qual o cookie é válido. |
3 | Expires = Date-time A data em que o cookie irá expirar. Se estiver em branco, o cookie irá expirar quando o visitante sair do navegador |
4 | Path = path O atributo Path especifica o subconjunto de URLs aos quais esse cookie se aplica. |
5 | Secure Isso instrui o agente do usuário a retornar o cookie apenas em uma conexão segura. |
A seguir está um exemplo de um cabeçalho de cookie simples gerado pelo servidor -
Set-Cookie: name1 = value1,name2 = value2; Expires = Wed, 09 Jun 2021 10:18:14 GMT
Variar
O campo de cabeçalho de resposta Vary especifica que a entidade tem várias fontes e pode, portanto, variar de acordo com a lista especificada de cabeçalho (s) de solicitação. A seguir está a sintaxe geral -
Vary : field-name
Você pode especificar vários cabeçalhos separados por vírgulas e um valor de asterisco "*" sinaliza que os parâmetros não especificados não se limitam aos cabeçalhos de solicitação. A seguir está um exemplo simples -
Vary: Accept-Language, Accept-Encoding
Aqui, os nomes dos campos não diferenciam maiúsculas de minúsculas.
WWW-Authenticate
O campo de cabeçalho de resposta WWW-Authenticate deve ser incluído nas mensagens de resposta 401 (não autorizado). O valor do campo consiste em pelo menos um desafio que indica o (s) esquema (s) de autenticação e os parâmetros aplicáveis ao URI de solicitação. A seguir está a sintaxe geral -
WWW-Authenticate : challenge
WWW- Authenticate field value, pois pode conter mais de um desafio, ou se mais de um campo de cabeçalho WWW-Authenticate for fornecido, o conteúdo de um desafio em si pode conter uma lista separada por vírgulas de parâmetros de autenticação. A seguir está um exemplo simples -
WWW-Authenticate: BASIC realm = "Admin"
Cabeçalhos de Entidade
Permitir
O campo Permitir cabeçalho de entidade lista o conjunto de métodos suportados pelo recurso identificado pelo URI de Solicitação. A seguir está a sintaxe geral -
Allow : Method
Você pode especificar vários métodos separados por vírgulas. A seguir está um exemplo simples -
Allow: GET, HEAD, PUT
Este campo não pode impedir um cliente de tentar outros métodos.
Codificação de conteúdo
O campo de cabeçalho de entidade Content-Encoding é usado como um modificador para o tipo de mídia. A seguir está a sintaxe geral -
Content-Encoding : content-coding
A codificação de conteúdo é uma característica da entidade identificada pelo Request-URI. A seguir está um exemplo simples -
Content-Encoding: gzip
Se a codificação de conteúdo de uma entidade em uma mensagem de solicitação não for aceitável para o servidor de origem, o servidor deve responder com um código de status 415 (tipo de mídia não suportado).
Content-Language
O campo de cabeçalho de entidade Content-Language descreve a (s) linguagem (s) natural (is) do público-alvo da entidade incluída. A seguir está a sintaxe geral -
Content-Language : language-tag
Vários idiomas podem ser listados para conteúdo que se destina a vários públicos. A seguir está um exemplo simples -
Content-Language: mi, en
O objetivo principal do Content-Language é permitir que um usuário identifique e diferencie entidades de acordo com o idioma de preferência do usuário.
Comprimento do conteúdo
O campo Content-Length entity-header indica o tamanho do corpo da entidade, em número decimal de OCTETs, enviado ao destinatário ou, no caso do método HEAD, o tamanho do corpo da entidade que teria sido enviado se o pedido foi um GET. A seguir está a sintaxe geral -
Content-Length : DIGITS
A seguir está um exemplo simples -
Content-Length: 3495
Qualquer Content-Length maior ou igual a zero é um valor válido.
Content-Location
O campo de cabeçalho de entidade Content-Location pode ser usado para fornecer a localização do recurso para a entidade incluída na mensagem quando essa entidade está acessível a partir de um local separado do URI do recurso solicitado. A seguir está a sintaxe geral -
Content-Location: absoluteURI | relativeURI
A seguir está um exemplo simples -
Content-Location: http://www.tutorialspoint.org/http/index.htm
O valor de Content-Location também define o URI de base para a entidade.
Content-MD5
O campo de cabeçalho de entidade Content-MD5 pode ser usado para fornecer um resumo MD5 da entidade, para verificar a integridade da mensagem no recebimento. A seguir está a sintaxe geral -
Content-MD5 : md5-digest using base64 of 128 bit MD5 digest as per RFC 1864
A seguir está um exemplo simples -
Content-MD5 : 8c2d46911f3f5a326455f0ed7a8ed3b3
O resumo MD5 é calculado com base no conteúdo do corpo da entidade, incluindo qualquer codificação de conteúdo que foi aplicada, mas não incluindo qualquer codificação de transferência aplicada ao corpo da mensagem.
Content-Range
O campo de cabeçalho de entidade Content-Range é enviado com um corpo de entidade parcial para especificar onde no corpo de entidade completo o corpo parcial deve ser aplicado. A seguir está a sintaxe geral -
Content-Range : bytes-unit SP first-byte-pos "-" last-byte-pos
Exemplos de valores de especificação de intervalo de conteúdo de byte, supondo que a entidade contenha um total de 1234 bytes -
- The first 500 bytes:
Content-Range : bytes 0-499/1234
- The second 500 bytes:
Content-Range : bytes 500-999/1234
- All except for the first 500 bytes:
Content-Range : bytes 500-1233/1234
- The last 500 bytes:
Content-Range : bytes 734-1233/1234
Quando uma mensagem HTTP inclui o conteúdo de um único intervalo, esse conteúdo é transmitido com um cabeçalho Content-Range e um cabeçalho Content-Length mostrando o número de bytes realmente transferidos. Por exemplo,
HTTP/1.1 206 Partial content
Date: Wed, 15 Nov 1995 06:25:24 GMT
Last-Modified: Wed, 15 Nov 1995 04:58:08 GMT
Content-Range: bytes 21010-47021/47022
Content-Length: 26012
Content-Type: image/gif
Tipo de conteúdo
O campo do cabeçalho da entidade Content-Type indica o tipo de mídia do corpo da entidade enviado ao destinatário ou, no caso do método HEAD, o tipo de mídia que teria sido enviado se a solicitação fosse um GET. A seguir está a sintaxe geral -
Content-Type : media-type
A seguir está um exemplo -
Content-Type: text/html; charset = ISO-8859-4
Expira
O campo de cabeçalho de entidade Expires fornece a data / hora após a qual a resposta é considerada obsoleta. A seguir está a sintaxe geral -
Expires : HTTP-date
A seguir está um exemplo -
Expires: Thu, 01 Dec 1994 16:00:00 GMT
Última modificação
O campo do cabeçalho da entidade Última modificação indica a data e hora em que o servidor de origem acredita que a variante foi modificada pela última vez. A seguir está a sintaxe geral -
Last-Modified: HTTP-date
A seguir está um exemplo -
Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT