El protocolo HTTP y el análisis de los encabezados HTTP

Analizar los encabezados HTTP de tus páginas con nuestra herramienta gratuita:


Visualizar el encabezado HTTP de esta URL:
Analizar mi página


Para iniciar el análisis, basta con introducir el enlace hacia tu página en el cuadro de arriba y pinchar en el botón Analizar.

De este modo podrás acceder al informe de análisis del encabezado HTTP de la solicitud y de la respuesta de tu página. Para cada encabezado HTTP, podrás ver la lista de todos los campos HTTP que contienen estos encabezados. La herramienta también ofrece el código HTTP del encabezado de la respuesta HTTP. Los principales valores se enumeran abajo.

Este visualizador HTTP (en inglés: HTTP Viewer) es una herramienta muy práctica para comprobar puntos técnicos (compresión, errores...) y el SEO de su sitio (las redirecciones 301, 302...).

¿Qué es el protocolo HTTP?

El protocolo HTTP (acrónimo de Hypertext Transfer Protocol) es el protocolo de red que emplean los navegadores web (Firefox, Internet Explorer...) y los servidores web (Apache, IIS...) para comunicarse entre ellos. Se utiliza por ejemplo para obtener un archivo HTML, una imagen, o publicar un formulario de Internet. Ocupa por tanto un lugar central en Internet. Técnicamente es un protocolo de texto (por tanto legible) que se apoya en los protocolos de más bajo nivel TCP e IP.

Los robots de los motores de búsqueda como Googlebot, que exploran los sitios web (en inglés: crawling) utilizan también el protocolo HTTP para comunicarse con los servidores web.

Con el protocolo HTTP la comunicación entre un navegador y un servidor web es, en definitiva, bastante simple. Este es el desarrollo:

  • Un internauta introduce una URL como http://www.misitio.com/fichier.html en el navegador.
  • El navegador obtiene su nombre de dominio «www.misitio.com» y a partir de esta información sabe cómo encontrar el servidor web distante (gracias a una operación denominada DNS lookup que resuelve un nombre de dominio en una dirección IP)
  • A partir de ahí se establece una conexión (basada en los protocolos TCP/IP) entre el navegador y el servidor web distante.
  • El navegador transmite entonces una solicitud HTTP que requiere el recurso «/fichier.html».
  • El servidor web encuentra el recurso correspondiente y reenvía su contenido en una respuesta HTTP.
  • El navegador ya es capaz de mostrar el archivo HTML al internauta.

Encabezado HTTP de una solicitud

Aquí hay un ejemplo de encabezado de la solicitud que envía un navegador como Safari:

GET /fichier.html HTTP/1.1[CRLF]
Host: www.misitio.com[CRLF]
User-Agent: Mozilla/5.0 Safari/531.9[CRLF]
[CRLF]

La primera línea siempre contiene: el tipo de solicitud, la parte de camino de la URL del recurso destinatario y por último la versión del protocolo (1.0 o 1.1 por lo general). Los 2 tipos de solicitud más conocidos son:

  • GET: es para «obtener» un recurso. Es claramente la solicitud más utilizada en Internet.
  • POST: es para enviar el contenido de un formulario HTML

Los [CRLF] simbolizan una secuencia ASCII [10-13], llamada [Carriage Return - Line feed]. Es de hecho el delimitador que utiliza el protocolo HTTP para separar las líneas del encabezado.

Las siguientes líneas son campos HTTP, siempre formateadas de esta forma: «NombreCampos: Valor». Todo esto constituye el encabezado de la solicitud. En determinados casos (para las PUBLICACIONES), también puede tener un cuerpo (body) para la solicitud.

Encabezado HTTP de una respuesta

Este es un ejemplo de encabezado de respuesta reenviado por un servidor web como Apache:

HTTP/1.1 200 OK[CRLF]
Date: Thu, 24 Sep 2009 19:37:34 GMT[CRLF]
Server: Apache/2.2.3[CRLF]
Content-Length: 7234[CRLF]
Content-Type: text/html; charset=UTF-8[CRLF]
[CRLF]
[aquí se encuentra el cuerpo (body) de la respuesta]

La primera línea de la respuesta siempre contiene el «código» HTTP que indica si la respuesta ha tenido éxito o no, pues al igual que para la respuesta, encontramos las líneas de los campos HTTP. Todo esto constituye el encabezado de la respuesta. A continuación se encuentra el cuerpo de la respuesta, que en caso de un GET de un archivo HTML contiene por ejemplo el código HTML de la página mencionada.

Lista de los códigos HTTP

Como simple internauta, se pueden comparar los códigos de respuesta HTTP (por ejemplo cuando se introduce una URL incorrecta). A continuación se indica una descripción de los principales valores que se deben conocer:

Código HTTP Explicación
Código HTTP 200: Ok Esto significa que todo funciona bien y que el servidor web reenvía el contenido de un recurso en el cuerpo (body) de la respuesta.
Código HTTP 301: Moved Permanently Es una redirección permanente hacia una URL indicada en la respuesta (campo «Location»). Esta redirección se considera como «Google Friendly» y no afecta a tu posicionamiento natural (consultar el artículo dedicado a las redirecciones 301).
Código HTTP 302: Moved temporarily Es una redirección temporal hacia una URL indicada. Google lo aprecia en menor medida.
Código HTTP 400: Bad request Esto significa que la solicitud que recibe el servidor web no respeta el formato definido por el protocolo HTTP.
Código HTTP 401: Unauthorized Esto significa que el acceso a la URL está protegido. El servidor web te pide de este modo que le indiques un nombre de inicio/ contraseña.
Código HTTP 403: Forbidden Esto significa que se ha dado un nombre de inicio/ contraseña no válidos para acceder a una URL protegida.
Código HTTP 404: File not found Esto significa que el servidor web no ha encontrado un recurso correspondiente a la URL indicada (consultar el artículo dedicado).
Código HTTP 500: Internal Error Esto significa que el servidor web no ha sido capaz de tratar la solicitud HTTP. Esto puede indicar un problema muy grave.

Lista de los principales campos HTTP (en inglés: HTTP fields)

Es útil conocer los campos HTTP más conocidos:

Para las solicitudes:

Nombre del campo HTTP Explicación
Host Es el nombre del dominio mencionado. Un servidor web puede gestionar varios dominios al mismo tiempo en la misma máquina. Se dice entonces que gestiona los «virtual hosts».
User-Agent Los navegadores utilizan este campo para indicar su nombre. Los crawlers de los motores de búsqueda utilizan también este campo para que les identifiquen (ej: Googlebot para Google).
Referer Cuando un usuario pincha en un enlace externo a partir de una página, el navegador indica en este campo la URL de la fuente. Esto puede ser muy útil para analizar la fuente de nuestro tráfico.

Para las respuestas:

Content-Type El servidor web indica el tipo («MIME type») del recurso que reenvía (imagen, html, pdf...). A veces también puede indicar la codificación de los caracteres del contenido. Por ejemplo: text/html; charset=UTF-8
Server El servidor web indica su firma en este campo.
Set-Cookie El servidor web (a menudo guiado por las líneas de código del desarrollador de un sitio web) puede indicar al navegador valores de cookies. El navegador reenviará estos valores en las futuras solicitudes.
Location Es el campo que se utiliza al margen de las redirecciones para indicar la nueva URL destinataria.

¿Tengo que conocer el protocolo HTTP para crear mi sitio web u optimizar su SEO?

No hay duda de que es posible gestionar e incluso realizar un sitio web sin saber nada acerca del protocolo HTTP. ¡Por suerte, ya que de lo contrario existirían pocos sitios en Internet!

Sin embargo, este protocolo está tan omnipresente en Internet que tener un conocimiento mínimo del HTTP y del vocabulario que lo rodea a menudo resulta muy útil. Por ejemplo, esto te permitiría:

  • saber de qué se habla cuándo oyes las palabras GET o POST;
  • saber cómo gestionar lo mejor posible una redirección de Url;
  • saber qué se esconde detrás del mensaje «404 File not found» que muestra un navegador;
  • y mucho más...

Para más información...

Si este artículo te ha despertado interés por saber más sobre el protocolo HTTP, aquí tienes algunos enlaces útiles:

También te pueden resultar útiles otros artículos de Yakaferci en la categoría Referencias y Técnica.