HTTP - Parâmetros

Este capítulo irá listar alguns dos parâmetros importantes do protocolo HTTP e sua sintaxe na forma como são usados ​​na comunicação. Por exemplo, formato para data, formato de URL, etc. Isso o ajudará a construir suas mensagens de solicitação e resposta ao escrever programas de cliente ou servidor HTTP. Você verá o uso completo desses parâmetros nos capítulos subsequentes enquanto aprende a estrutura da mensagem para solicitações e respostas HTTP.

Versão HTTP

HTTP usa um <major>.<minor>esquema de numeração para indicar versões do protocolo. A versão de uma mensagem HTTP é indicada por um campo HTTP-Version na primeira linha. Esta é a sintaxe geral para especificar o número da versão HTTP:

HTTP-Version   = "HTTP" "/" 1*DIGIT "." 1*DIGIT

Exemplo

HTTP/1.0

or

HTTP/1.1

Identificadores Uniformes de Recursos

Identificadores Uniformes de Recursos (URI) são simplesmente formatados e não diferenciam maiúsculas de minúsculas contendo nome, localização, etc. para identificar um recurso, por exemplo, um site, um serviço da web, etc. Uma sintaxe geral de URI usada para HTTP é a seguinte:

URI = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]]

Aqui se o port está vazio ou não fornecido, a porta 80 é assumida para HTTP e um vazio abs_path é equivalente a um abs_pathdo "/". Os outros personagens além daqueles noreserved e unsafe conjuntos são equivalentes à sua codificação ""% "HEX HEX".

Exemplo

Os três URIs a seguir são equivalentes:

http://abc.com:80/~smith/home.html
http://ABC.com/%7Esmith/home.html
http://ABC.com:/%7esmith/home.html

Formatos de data / hora

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 a seguir de carimbos de data / hora:

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

Conjuntos de caracteres

Usamos conjuntos de caracteres para especificar os conjuntos de caracteres que o cliente prefere. Vários conjuntos de caracteres podem ser listados separados por vírgulas. Se um valor não for especificado, o padrão será US-ASCII.

Exemplo

A seguir estão os conjuntos de caracteres válidos:

US-ASCII

or

ISO-8859-1

or 

ISO-8859-7

Codificações de conteúdo

Um valor de codificação de conteúdo indica que um algoritmo de codificação foi usado para codificar o conteúdo antes de transmiti-lo pela rede. A codificação de conteúdo é usada principalmente para permitir que um documento seja compactado ou de outra forma transformado de forma útil sem perder a identidade.

Todos os valores de codificação de conteúdo não diferenciam maiúsculas de minúsculas. O HTTP / 1.1 usa valores de codificação de conteúdo nos campos de cabeçalho Accept-Encoding e Content-Encoding, que veremos nos capítulos subsequentes.

Exemplo

A seguir estão os esquemas de codificação válidos:

Accept-encoding: gzip

or

Accept-encoding: compress

or 

Accept-encoding: deflate

Tipos de mídia

HTTP usa tipos de mídia da Internet no Content-Type e Acceptcampos de cabeçalho para fornecer digitação de dados aberta e extensível e negociação de tipo. Todos os valores de tipo de mídia são registrados na Internet Assigned Number Authority (IANA). A sintaxe geral para especificar o tipo de mídia é a seguinte:

media-type     = type "/" subtype *( ";" parameter )

Os nomes de atributo de tipo, subtipo e parâmetro não diferenciam maiúsculas de minúsculas.

Exemplo

Accept: image/gif

Tags de linguagem

HTTP usa tags de idioma dentro do Accept-Language e Content-LanguageCampos. Uma tag de idioma é composta por uma ou mais partes: uma tag de idioma principal e uma série possivelmente vazia de subtags:

language-tag  = primary-tag *( "-" subtag )

Espaços em branco não são permitidos na tag e todas as tags não fazem distinção entre maiúsculas e minúsculas.

Exemplo

Tags de exemplo incluem:

en, en-US, en-cockney, i-cherokee, x-pig-latin

onde qualquer marca primária de duas letras é uma abreviatura de idioma ISO-639 e qualquer subetiqueta inicial de duas letras é um código de país ISO-3166.