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 Métodos Bibliografia Pág. 1 Pág. 2 Pág. 4

Formato de Mensagens
Existem 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étodos
O 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 Um pouco do protocolo HTTP http://bit.ly/RoXfna http://bit.ly/S560Ba

Página 4

Sign up to vote on this title
UsefulNot useful