Http mensagens

6

Click here to load reader

Transcript of Http mensagens

Page 1: Http   mensagens

Protocolo HTTP

Formato de mensagens

e métodos

Thiago Morais

Segurança da Informação

1o Período – Noturno

Novembro / 2012

Page 2: Http   mensagens

Sumário

Formato de Mensagens Pág. 1

Métodos Pág. 2

Bibliografia Pág. 4

Page 3: Http   mensagens

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

Page 4: Http   mensagens

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

Page 5: Http   mensagens

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

Page 6: Http   mensagens

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