Http mensagens
Click here to load reader
-
Upload
thiagosenac -
Category
Documents
-
view
1.213 -
download
3
Transcript of Http mensagens
Protocolo HTTP
Formato de mensagens
e métodos
Thiago Morais
Segurança da Informação
1o Período – Noturno
Novembro / 2012
Sumário
Formato de Mensagens Pág. 1
Métodos Pág. 2
Bibliografia Pág. 4
Formato de MensagensExistem dois tipos de mensagem HTTP: requisição e resposta.
Requisição
Uma mensagem de requisição é formada por uma linha de requisição, as linhas de
cabeçalho e o corpo da mensagem.
A linha de requisição é formada pelo método, a URL e a versão http, todos separados por
um espaço. O método é o tipo de ação que a mensagem requer. Exemplos de métodos que são
muito usados em mensagens http são GET, POST e HEAD. A URL é o objeto sobre o qual a
mensagem quer realizar a ação(método) requisitada. E a versão http se refere à versão
requisitada pela mensagem.
As linhas de cabeçalho devem conter detalhes sobre a requisição para o servidor.
Podemos encaixar o cabeçalho das mensagens de requisição em três tipos.
Gerais: contêm informações referentes principalmente à própria mensagem, e são usadas para
controlar seu processamento e prover o receptor com informações extras.
Requisição: fornecem para o servidor mais informações sobre a natureza da requisição do
cliente, e dão ao cliente mais controle sobre como a requisição é gerenciada. Podem também
contar quais formatos ou códigos o cliente consegue processar.
Entidade: descrevem a entidade contida no corpo da mensagem, se existir alguma.
Normalmente a mensagem de requisição não irá possuir cabeçalhos de entidade, pois
dificilmente uma mensagem de requisição trará consigo um corpo de mensagem.
No corpo de mensagem, quando o mesmo existir numa mensagem de requisição, haverá
uma entidade, que pode ser um arquivo de música, uma imagem, uma página html, etc.
Resposta
Uma mensagem de resposta é formada por uma linha de estado, as linhas de cabeçalho e
o corpo da mensagem.
Na linha de estado, teremos a versão http, o código da resposta, e uma mensagem
associada ao código. A versão http se refere à versão da mensagem de resposta. O código da
resposta e a mensagem associada a ele trarão a informação sobre os resultados do
processamento da requisição do cliente. O código de resposta é um número de três dígitos que
indica o resultado formal que o servidor está comunicando ao cliente. Já a mensagem associada
é opcional, e é um texto descritivo que pode ser mostrado para o usuário humano do cliente
http, que poderá então saber o que o servidor respondeu.
Página 1
Exemplos de Códigos de estado:
200 OK: Requisição bem sucedida.
301 Moved Permanently: o objeto requisitado foi movido, e a resposta retornará uma nova URL,
com a localização do objeto.
400 Bad Request: o servidor não entendeu a requisição do cliente.
404 HTTP Not Found: O servidor não encontrou o objeto requisitado.
505 HTTP Version Not Supported: o servidor não suporta a versão http requisitada.
As linhas de cabeçalho devem trazer informações extras sobre a mensagem de resposta.
Podemos encaixar o cabeçalho das mensagens de resposta em três tipos.
Gerais: assim como nas mensagens de requisição, deverão conter informações referentes
principalmente à própria mensagem, não trazendo informações sobre o corpo da mensagem.
Resposta: provêem informação complementar visando ampliar as informações da linha de
estado. O servidor poderá também retornar informações extras no corpo da mensagem,
principalmente se ocorrerem erros.
Entidade: descrevem a entidade contida no corpo da mensagem, se existir alguma. São mais
frequentes nas mensagens de resposta.
No corpo de mensagem, quando o mesmo existir numa mensagem de requisição, haverá
uma entidade, que pode ser um arquivo de música, uma imagem, uma página html, etc.
MétodosO protocolo HTTP define um conjunto de métodos que o cliente pode invocar, que
funcionam como comandos enviados ao servidor web. O protocolo HTTP 1.0, descrito na RFC
1945 (Berners-Lee et al., 1996), são eles GET HEAD e POST.
As mensagens de requisição e resposta do protocolo HTTP seguem um padrão, uma
requisição é constituída de uma linha informando o método a ser executado em seguida de um
cabeçalho que pode ter mais de uma linha e por ultimo o corpo da mensagem caso seja
necessário.
Segundo (TANEMBAUM, 2003) o método GET é uma solicitação ao servidor de envio de
página ou objeto exemplo:
Página 2
GET /index.html HTTP/1.1
Host: www.unemat.br
Connection: close
User-agent: Mozilla/4.0
Accept-language: fr
Neste modelo de requisição podemos notar que na primeira linha está o tipo do método
(GET) o arquivo solicitado e por último o modelo do HTTP usado na segunda linha está o
endereço do host, de onde está hospedado o objeto, Connection: close mostra que não é uma
conexão persistente, User-agent: informa o browser utilizado e Accept-language: refere-se a
linguagem que o é solicitada, caso ela não exista no domínio será usado a linguagem default. A
resposta do servidor deve ser:
HTTP/1.1 200 OK
Connection: close
Date: Mon, 12 Dec 2005 04:15:03 GMT
Server: Apache/1.3.0 (Unix)
Last-Modified: Sun. 5 May 2005 09:25:23 GMT
Content-Length: 6821
Content-Type: text/html
Analisando a mensagem de resposta identificamos na primeira linha o estado da
solicitação que no modelo acima está OK, o servidor está enviando o objeto solicitado,
Connection: close está informando que é uma conexão não persistente, Date é a data de acesso
ao objeto, Server o tipo de servidor web, Last-Modified data da última alteração ou criação do
arquivo Content-Length, tamanho do arquivo e por último Content-Type, responsável por
informar o tipo do arquivo.
Abaixo segue relação dos métodos usados:
GET: Método que solicita algum recurso ou objeto ao servidor.
HEAD: Solicita informações de um determinado objeto sem que esse seja enviado ao cliente
apenas para testa a validade do último acesso.
POST: Método usado para envio de arquivo dados ou formulário HTML ao servidor.
OPTIONS: Por meio desse método o cliente obtém as propriedades do servidor.
DELETE: Informa por meio do URL o objeto a ser deletado.
TRACE: Para enviar mensagem do tipo loopback para teste.
Página 3
PUT: Aceita criar ou modificar algum objeto do servidor.
CONNECT: Comunicar com servidores Proxy.
Bibliografia
Introdução às Redes de Computadores/WWW e HTTP http://bit.ly/RoXfna
Um pouco do protocolo HTTP http://bit.ly/S560Ba
Página 4