Blog‎ > ‎

O protocolo Http - mensagens de request/response

postado em 1 de jun de 2011 12:01 por Usuário desconhecido   [ 29 de jun de 2011 07:56 atualizado‎(s)‎ ]
por Filipe Abelha

Estrutura da mensagem de request

  • Request-line:
É iniciada por um token do método a ser aplicado (são eles: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT, método de extensão (falaremos sobre eles mais a frente)), seguido do endereço do request e da versão do protocolo em uso.

  • Cabeçalho:
Podem ser dos tipos: general, request e/ou entity.

  • Corpo (opcional).


Métodos da mensagem de request

  • OPTIONS
Realiza um pedido de informações sobre as opções de comunicação disponíveis com o servidor.

  • GET
Recupera qualquer informação que é identificada pelo Request-URI da requisição (retorna a informação em forma de entidade).

  • HEAD
É idêntico ao método GET, entretanto a resposta para esse método não pode conter um corpo de mensagem.

  • POST
É utilizado para solicitar que o servidor aceite a entidade que se encontra no corpo da mensagem de request.

  • PUT
Solicita que a entidade contida no corpo da mensagem seja armazenada no endereço informado.

  • DELETE
Solicita que o servidor de origem delete o recurso identificado pelo endereço informado.

  • TRACE
Informa ao cliente o que os servidores intermediários estão mudando na mensagem.

  • CONNECT
É utilizado com um servidor proxy para a comunicação via tunelamento (SSL por exemplo).



Mensagem de response

  • Status-line:
É formada pela versão do protocolo, um status em código numérico (composto de três dígitos) e a sua respectiva descrição textual.

  • Cabeçalho:
Podem ser dos tipos: general, response e/ou entity.

  • Corpo (opcional).


Códigos de status da mensagem de response


O código de status é composto por três dígitos, sendo o primeiro para definir a classe da mensagem de response. As classes são definidas em:

  • 1xx: informacional - requisição recebida, processo em execução.
  • 2xx: sucesso - a ação foi recebida com sucesso, entendida e aceita.
  • 3xx: redirecionamento - mais ações necessitam ser realizadas para a completude da requisição.
  • 4xx: Erro do client - a requisição contem sintaxe ruim ou não pode ser completamente compreendida.
  • 5xx: Erro do servidor - o servidor falhou no entendimento de uma requisição aparentemente válida.

Abaixo seguem todos os códigos de status atualmente existentes, para maiores informações, sugiro a leitura das fontes citadas ao final do post.


  • "100": Continue
  • "101": Switching Protocols
  • "200": OK
  • "201": Created
  • "202": Accepted
  • "203": Non-Authoritative Information
  • "204": No Content
  • "205": Reset Content
  • "206": Partial Content
  • "300": Multiple Choices
  • "301": Moved Permanently
  • "302": Found
  • "303": See Other
  • "304": Not Modified
  • "305": Use Proxy
  • "307": Temporary Redirect
  • "400": Bad Request
  • "401": Unauthorized
  • "402": Payment Required
  • "403": Forbidden
  • "404": Not Found
  • "405": Method Not Allowed
  • "406": Not Acceptable
  • "407": Proxy Authentication Required
  • "408": Request Time-out
  • "409": Conflict
  • "410": Gone
  • "411": Length Required
  • "412": Precondition Failed
  • "413": Request Entity Too Large
  • "414": Request-URI Too Large
  • "415": Unsupported Media Type
  • "416": Requested range not satisfiable
  • "417": Expectation Failed
  • "500": Internal Server Error
  • "501": Not Implemented
  • "502": Bad Gateway
  • "503": Service Unavailable
  • "504": Gateway Time-out
  • "505": HTTP Version not supported
  • extension-code

Se você gostou do assunto e quer aprofundá-lo, sugiro a leitura da  RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1, mencionada no primeiro post sobre o protocolo Http.

Na próxima semana falaremos sobre uma das formas de integração com a plataforma iVarejo: a integração via Http Post utilizando o Form (veja o nosso tutorial).



tags: #http, #protocolo, #request, #response, #introducao

Fontes:

http://www.ietf.org/
http://tools.ietf.org/html/rfc2616
Comments