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 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             http://bit.ly/RoXfna

Um pouco do protocolo HTTP                                 http://bit.ly/S560Ba




                                            Página 4

Http mensagens

  • 1.
    Protocolo HTTP Formato demensagens e métodos Thiago Morais Segurança da Informação 1o Período – Noturno Novembro / 2012
  • 2.
    Sumário Formato de Mensagens Pág. 1 Métodos Pág. 2 Bibliografia Pág. 4
  • 3.
    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
  • 4.
    Exemplos de Códigosde 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
  • 5.
    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
  • 6.
    PUT: Aceita criarou 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