HTTP Headers – o cabeçalho oculto

Em uma simples visita a uma página, muita gente não tem noção de quantos processos acontecem até a sua página ser totalmente carregada. Cada página, imagem e CSS gera uma requisição por parte do navegador ao servidor de um site. Esta conversa é feita com o protocolo HTTP. Um robô de busca também usa o mesmo protocolo para se comunicar e varrer um site. Esta conversa fica oculta aos nossos olhos, mas ela é importante para SEO. A conversa acontece pelo cabeçalho HTTP. Ele tem a parte de requisição que é feita pelo user-agent ao host e tem a parte da resposta que é a mensagem retornada referente a requisição com um código de status. Vamos ver um pouco o processo.

Requisição HTTP

Quando você digita uma URL no seu navegador e aperta enter, sem você ter noção, o navegador faz um pedido ao servidor que responde a solicitação. Veja abaixo um exemplo de requisição ao servidor:

GET / HTTP/1.1
Host: www.marketingdebusca.com.br
Connection: close
User-Agent: Googlebot/2.1 (+http://www.googlebot.com/bot.html)
Accept-Encoding: gzip
Accept-Charset: ISO-8859-1,UTF-8;q=0.7,*;q=0.7
Cache-Control: no
Accept-Language: de,en;q=0.7,en-us;q=0.3
Referer:

Neste exemplo o pedido é feito pelo método GET para o host (URL) marketing de busca pelo user-agent Googlebot. No lugar do User-Agent Googlebot poderia ser o Internet Explorer, o Firefox ou qualquer programa que você inventar. É possível informar um User-Agent sem confirmar se ele é realmente é verdadeiro. Isto serve para identificar se um servidor está passando páginas para os Robô de busca diferentes das páginas para os usuários. O servidor pode inclusive apresentar conteúdo diferente baseado no User-Agent. Esta é uma técnica comum de Black Hat SEO onde o criador da página pode apresentar apenas para o Googlebot um página otimizada enquanto os outros visitantes recebem uma página diferente como Flash por exemplo.

Resposta HTTP

A requisição HTTP que fizemos acima, gera uma resposta do servidor. Veja um exemplo de resposta à requisição:

HTTP/1.1 200 OK
Date: Wed, 30 Jul 2008 19:41:57 GMT
Server: Apache/1.3.37 (Unix) mod_throttle/3.1.2 ...
X-Pingback: http://www.marketingdebusca.com.br/xmlrpc.php
X-Powered-By: PHP/5.2.6
Connection: close
Content-Type: text/html; charset=UTF-8
Content-Encoding: gzip
Content-Length: 9631

Está é a resposta HTTP. A primeira linha tem um código. Neste caso é o código 200. Este código responde ao User-Agent que a página foi encontrada com sucesso e será enviado a quem pediu. Também são informados dados do servidor que no caso é o Apache e seu módulos instalados como o PHP. Tem vários outros dados também como o tamanho do conteúdo e o tipo dele.

Existem vários códigos de retorno possíveis a cada requisição. Os códigos tem sempre três dígitos e o primeiro digito mostra a que grupo de código de Status ele pertence.

Vamos ver os grupos e os códigos mais importantes para SEO.

Códigos de Status

1XX Informacional
Não há necessidade de se preocupar com este, serve apenas para informar que a informação foi recebida e que o processo continua.

2XX Sucesso
Significa que o pedido foi recebido com sucesso. É o que sempre acontece quando suas páginas são carregadas

200 – OK. O pedido ao servidor foi atendido com sucesso. A página web existe e será enviada ao user-agent (navegador, robô de busca…).

3XX Redirecionamento
Serve para avisar direto no cabeçalho HTTP uma mudança de página. Diferente de um Meta Refresh ou usar javascript, ele permite um redirecionamento “suave” e importante para SEO.

301 – Movido Permanentemente. Muito útil para redirecionar páginas. Serve para redirecionar suas URLs que foram movidas permanentemente. Assim você evita páginas de código 404 ou pode tornar URLs dinâmicas com em URLs limpas.
302 – Movido Temporariamente. Serve também para mover, mas com função temporária. A vantagem é que você pode reverter isto. Funciona bem para manutenções ou alteração não definitiva. O robô de busca continua visitando o endereço original.

4XX Erro do Cliente
Deve ser tratado com atenção pois o conteúdo não estará acessível para o visitante nem para o site de busca. Problema para indexar.

401 – Não autorizado. O acesso a página não esta autorizado pois possivelmente a pessoa não está logada. Isto impede de uma página ser indexada por exemplo.
403 – Proibido. Neste caso o robô de busca também não terá como indexar o conteúdo.
404 – Não encontrado. É o código de retorno pode ser uma página ou arquivo que não existe no servidor, como um arquivo apagado. Pode ser usado para apresentar uma página com conteúdos relacionados à URL procurada.

5XX Erro do Servidor
O servidor não consegui atender o pedido por algum erro. Também não permitirá a indexação da página.

500 – Erro interno do servidor.
503 – Serviço indisponível. Pode ser um erro temporário. Uma manutenção ou uma grande quantidade de acessos pode derrubar o servidor.

Testando cabeçalho HTTP e User-Agent

Agora que você já tem uma idéia do processo de “conversa” no HTTP, aproveite para simular como ele funciona. Um serviço online interessante é o web sniffer. Ele permite que você veja o cabeçalho HTTP e troque o user-agent. Também é possível utilizar plugins para Firefox. Um deles é o Live HTTP Header que permite monitorar o cabeçalho HTTP. Outro plugin interessante é o User Agent Switcher que permite que você altere o User-Agent do Firefox para outros como o Googlebot ou o até o Safari no Iphone. Agora você vai poder aproveitar melhor esta conversa oculta.

8 Comentários »

  1. Ruben Zevallos Jr.

    August 5, 2008 @ 7:27 am

    Boas dicas… eu utilizo muito os headers para entender melhor como fazer o meu robô, o Merlim navegar nos sites corretamente nos sites… o Live HTTP do Firefox tem sido a minha pedida e antes, estava utilizando outra para o Internet Explorer, mas a atualização para o IE 7 ficou inviável… eles querem mais de US$ 250 pelo update…

  2. Leandro Feijó

    August 5, 2008 @ 10:30 am

    Paulo,
    tenho uma dúvida com relação ao seu site… Pq vc utiliza redirecionamento 302 de http://marketingdebusca.com.br para http://www.marketingdebusca.com.br ?

    Neste caso, não seria mais adequado um redirecionamento 301?

    Abraço.

  3. Wallace

    August 7, 2008 @ 11:38 pm

    Nossa… bem interessante. Nada melhor do que saber como as coisas funcionam… Um abraço e sucesso!

  4. michel

    August 10, 2008 @ 11:36 am

    valew pelas dicas

    emminutos.com.br

  5. Ramon Samudio

    August 13, 2008 @ 7:05 am

    Muito boa essas dicas. Valeu

  6. Julianop

    August 25, 2008 @ 10:10 pm

    Artigo muito maneiro, parabéns, e obrigado!!
    vlw

  7. Brugraph

    September 24, 2008 @ 4:51 pm

    Belo post!!!

    Muito bom saber do funcionamento do http!!!

    Um grande abraço

  8. Whatever

    December 29, 2011 @ 2:39 pm

    Bom artigo

TrackBack URI

Comente