O método de requisição é o primeiro dado enviado pelo user-agent ao fazer uma requisição HTTP ao servidor.
Vamos usar o código de exemplo do post de introdução ao protocolo HTTP.
Vejamos a primeira linha de uma requisição HTTP de exemplo: GET / HTTP/1.1
Essa linha informa que a requisição se trata de uma recuperação de dados (método GET), usando o protocolo HTTP, versão 1.1. Esse método, GET, é justamente o primeiro de que vamos tratar, principalmente pelo fato de ser ele o método usado como padrão por qualquer user-agent e, por isso, ser, de longe, o método mais usado. O método GET tem duas propriedades importantes: deve ser seguro (safe) e idempotente (idempotent).
Ser seguro significa que o método não deve ser usado para produzir mudanças nos dados que estão no servidor. Ou seja, nunca se deve usar o método GET para, por exemplo, atualizar um dado em um banco de dados.
Idempotente quer dizer que múltiplas requisições ao mesmo recurso usando o método devem ter o mesmo resultado que teria uma requisição apenas. A título de curiosidade, idempotente é a propriedade de um número que, multiplicado por ele mesmo, tem ele mesmo como resultado (n x n = n), em termos de números reais, apenas 0 e 1 têm essa propriedade.
Em termos de métodos de requisição HTTP, os métodos GET, HEAD, PUT e DELETE são os que possuem a propriedade de ser idempotentes. Claro que há exceções. Por exemplo, digamos que o recurso requisitado seja a home page de um blog, que mostra os posts e o número de comentários submetidos em cada um. Se, ao mesmo tempo que você faz suas requisições GET um outro usuário postar um comentário ou mesmo o autor do blog postar um novo texto, o resultado da requisição será diferente.
O que não pode acontecer é as suas requisições resultarem em mudanças no conteúdo da resposta. A função do método GET é pura e simplesmente recuperar um recurso existente no servidor. O resultado de uma requisição GET é “cacheável” pelo cliente.
Ou seja, se o seu browser possui a capacidade de guardar cópias das páginas visitadas para uso posterior, ou seja, tem cache, após uma requisição GET bem sucedida, o conteúdo da resposta (headers e corpo) serão guardados neste cache e em uma requisição posterior ao mesmo recurso, caso sejam verificadas algumas condições (que veremos quando formos falar especificamente sobre cache), não será necessário baixar novamente todo o conteúdo do recurso. A versão em cache é usada. Você estará usando o método GET quando:
- digitar uma URL na barra de endereços do seu browser e apertar Enter
- Seguir um link em uma página na web, email, programa externo ou nos bookmarks (favoritos) do seu browser
- Submeter, em uma página web, um formulário cujo método seja get (
method="get")
No caso de formulários HTML, cabe aqui uma observação: caso o método do formulário seja GET, as informações submetidas estarão explicitamente expostas ao usuário por meio de uma query string na URL que aparecerá na barra de endereços do browser. Além disso, deve-se tomar cuidado com formulários usando esse método porque, caso a quantidade de informação submetida seja grande demais, pode resultar em problemas em alguns user-agents que, por questões de segurança, limitam o tamanho de URL que pode ser aceito. A especificação oficial do método GET pode ser lida (em inglês) na página de definição dos métodos HTTP, no site do W3C.
Leia também:
- No related posts
- Hospedagem de sites Dreamhost: 50% de desconto
- Comprar: Acer Aspire One, Esteira Ergometrica, Notebook, Celular V3
Maio 7th, 2006 at 10:59 pm
Muito legal essa iniciativa! Já assinei o rss.
[]s!
Março 2nd, 2008 at 11:15 pm
[...] Protocolo HTTP: métodos de requisição [...]
Março 27th, 2008 at 1:34 am
Beautiful teen girls
http://www.porntubebestmovies3.tk
Abril 6th, 2008 at 10:56 am
[...] O atributo opcional method diz a forma em que o formulário será enviado, e pode ter o valor get (que é o default) ou post. Freqüentemente usa-se post que esconde a informação (get manda a informação através da URL). Leia mais sobre esses métodos de requisição. [...]