If you're seeing this message, it means we're having trouble loading external resources on our website.

Si estás detrás de un filtro de páginas web, por favor asegúrate de que los dominios *.kastatic.org y *.kasandbox.org estén desbloqueados.

Contenido principal

Protocolo de transferencia de hipertexto (HTTP)

Cada vez que visitas una página web, tu computadora utiliza el protocolo de transferencia de hipertexto (HTTP) para descargar esa página desde otra computadora en algún lugar de Internet.
Veamos ese proceso paso a paso.

Paso 1: dirigir el navegador al URL

Cuando queremos navegar por la web, podemos utilizar muchos tipos de computadoras (como portátiles, de escritorio y teléfonos), siempre y cuando la computadora tenga una aplicación de navegador instalada.
El usuario escribe un localizador uniforme de recursos (URL, "Uniform Resource Locator") en el navegador o sigue un enlace en una página ya abierta:
Diagrama de la ventana del navegador con URL en la barra de direcciones: "http://www.example.com/index.html"
Observa algo acerca de ese URL: empieza con "http". Es una señal al navegador que necesita usar HTTP para obtener el documento en ese URL.
🔍 ¿Qué navegador utilizas ahora? ¿Cuál es el URL de este sitio web? ¿Con qué empieza?

Paso 2: el navegador busca la IP

Normalmente escribimos URLs amigables para humanos en los navegadores, como "khanacademy.org" o "wikipedia.org". Esos nombres de dominio se mapean a direcciones IP, la ubicación real de las computadoras del dominio. Esto lo maneja el Sistema de nombres de dominio.
El navegador utiliza una resolución DNS para mapear el dominio a una dirección IP:
Diagrama con portátil a la izquierda y servidor a la derecha. Portátil tiene ventana del navegador y flecha al servidor etiquetada "www.example.com = ?". El servidor está etiquetado como "resolución DNS" y tiene una flecha de vuelta al portátil que dice "93.184.216.34"

Paso 3: el navegador envía una solicitud HTTP

Una vez que el navegador identifica la dirección IP de la computadora que aloja la URL solicitada, envía una solicitud HTTP.
Diagrama con portátil a la izquierda y servidor a la derecha. El portátil tiene una ventana del navegador y una flecha al servidor con un paquete encima que contiene la solicitud HTTP. El servidor está etiquetado "www.example.com" y su dirección IP "93.184.216.34".
Una solicitud HTTP puede ser tan corta como dos líneas de texto:
GET /index.html HTTP/1.1
Host: www.example.com
La primera palabra es el verbo HTTP: "GET". Hay otros verbos para otras acciones en web, como enviar datos de un formulario ("POST").
La siguiente parte especifica la ruta: "/index.html". La computadora que hospeda el sitio web almacena todo su contenido, así que el navegador debe especificar qué página cargar, y en este caso se indica la página principal del sitio.
La parte final de la primera línea especifica el protocolo y la versión del protocolo: "HTTP/1.1".
La segunda línea especifica el dominio del URL solicitada. Esto es necesario en caso que el servidor hospedero o anfitrión almacene el contenido de varios sitios web.

Paso 4: el servidor envía de vuelta la respuesta HTTP

Una vez que la computadora anfitrión recibe la petición HTTP, devuelve una respuesta tanto con el contenido como con los metadatos asociados.
Diagrama con portátil a la izquierda y servidor a la derecha. El servidor está etiquetado "www.example.com" y su dirección IP es "93. 84.216.34". La flecha va del servidor al portátil con un paquete encima que contiene la respuesta HTTP.
La respuesta HTTP empieza de forma similar a la solicitud:
HTTP/1.1 200 OK
La respuesta empieza con el protocolo y la versión, "HTTP/1.1".
El siguiente número es muy importante, el código de estado HTTP; y en este caso, es 200. Ese código representa una recuperación exitosa del documento ("OK").
Si el servidor no hubiera podido recuperar el documento, los códigos de estado darían más información, como cuando la falla es por error del usuario o del servidor. Por ejemplo, el código de estado más conocido es 404 ("Archivo no encontrado"). Esto ocurre cuando se visita una ruta que no corresponde a ningún documento. Como los usuarios a veces escriben los URLs incorrectamente, 404 sucede con frecuencia. Por ello los sitios web a menudo tienen 404 páginas web divertidas. Intenta escribir un URL de Khan Academy sin sentido y ¡mira lo que pasa!
La siguiente parte de una respuesta HTTP son los encabezados. Le dan al navegador detalles adicionales y lo ayudan al navegador a desplegar el contenido.
Estos dos encabezados son comunes en a mayoría de las solicitudes:
Content-Type: text/html; charset=UTF-8
Content-Length: 208
El tipo de contenido (Content-type) le dice al navegador qué tipo de documento se envía. Un tipo común en web es "text/html", pues todas las páginas web son archivos de texto HTML. Otros tipos son posibles, como imágenes ("image/png"), vídeos ("video/mpeg"), script ("application/javascript") y cualquier otra que puedas cargar en tu navegador.
Content-length indica la longitud del documento en bytes, lo que ayuda al navegador a saber cuánto tardará un archivo en descargarse.
Finalmente, la respuesta HTTP escribe el documento solicitado. Esta página es un simple archivo HTML:
<!DOCTYPE html>
<html>
  <head>
    <title>Example Domain</title>
  </head>
  <body>
    <h1>Example Domain</h1>
    <p>This domain is to be used for illustrative examples in documents.</p>
  </body>
</html>
Si quieres entender cómo funciona HTML con más detalle, puedes darle un vistazo a nuestro curso completo de HTML/CSS.

Paso 5: el navegador despliega la respuesta

El navegador ahora tiene toda la información que necesita para procesar el documento solicitado.
Ilustración del navegador con barra de dirección que apunta a "http://www.example.com/index.html". La página web muestra el encabezado "Dominio de ejemplo" y el párrafo "Este dominio debe ser utilizado para ejemplos ilustrativos de documentos".

Mira tú mismo:

Muchos navegadores incluyen herramientas de depuración, que permiten ver las peticiones HTTP y sus respuestas mientras se navega la web.
Intentemos en Chrome.
Primero, necesitamos abrir las herramientas de desarrollo de Chrome. Una forma de hacerlo es en el menú "Ver", luego seleccionar "Desarrollador" → "Herramientas de desarrollador". Una vez que se abra esa opción, selecciona la pestaña "Red" (o "Network").
Captura de pantalla de Herramientas de desarrollador de Chrome con la pestaña "Red" abierta.
Luego, escribe una URL en la barra del navegador, como "http://www.example.com/index.html". Una solicitud HTTP aparece en la consola y el navegador muestra la página.
Captura de pantalla de las herramientas de desarrollo de Chrome con la pestaña "Red" abierta. Hay un solo renglón para "index.html".
Podemos escarbar en esa solicitud para ver más detalles, si queremos. Haz clic en "index.html" bajo la columna "Nombre". Una interfaz con pestañas aparece y por omisión una pestaña "Encabezados" (o "Headers").
Captura de pantalla de las herramientas de desarrollo de Chrome, pestaña "Red". El lado izquierdo muestra "index.html" seleccionado. El lado derecho muestra una interfaz con la pestaña "Cabeceras" abierta. La pestaña de encabezados tiene secciones para "General" y "Encabezados respuesta".
La sección "Response headers" incluye encabezados que ya mencionamos, como "Content-Type" y "Content-Length", además de muchas otras interesantes.
El contenido real HTML de la respuesta es otra pestaña, "Response".
Captura de pantalla de las herramientas de desarrollo de Chrome, pestaña "Red". El lado izquierdo muestra "index.html" seleccionado. El lado derecho muestra una interfaz con la pestaña "Encabezados" abierta. La pestaña "Respuesta" contiene código HTML.
🔍 Abre la pestaña "Red" y navega por más sitios web. ¿Cuántas solicitudes HTTP hace cada sitio web? ¿Qué tipo de contenido hay en las respuestas? ¿Qué te sorprende más?

HTTP y TCP/IP

HTTP es un protocolo que se construye encima de los protocolos TCP/IP.
Cada solicitud HTTP está dentro de un paquete IP, y cada respuesta HTTP está dentro de otro paquete IP, o más típicamente, múltiples paquetes, ya que los datos de respuesta pueden ser muy grandes.
Diagrama con portátil a la izquierda y servidor a la derecha. Portátil tiene una ventana de navegador con "http://www.example.com/index.html" en la barra de direcciones. El servidor está etiquetado "www.example.com" y su dirección IP es "93.184.216.34". Se muestran 4 flechas:
  • La primera flecha va de portátil a servidor y muestra el paquete con solicitud HTTP dentro.
  • La segunda flecha va de servidor a portátil y muestra el paquete con "ACK" dentro.
  • La tercera flecha va de servidor a portátil y muestra el paquete con respuesta HTTP dentro.
  • La cuarta flecha va de portátil a servidor y muestra el paquete con "ACK" dentro.
Hay muchos otros protocolos construidos sobre TCP/IP, como protocolos para el envío de correo electrónico (SMTP, POP, IMAP) y el intercambio de archivos (FTP).
Todos estos protocolos nos permiten utilizar Internet para conectar con otros ordenadores de maneras útiles, y comunicarse y colaborar a través de grandes distancias.

🙋🏽🙋🏻‍♀️🙋🏿‍♂️¿Tienes alguna pregunta sobre este tópico? Nos encantaría contestarte; ¡simplemente pregunta en el área de preguntas abajo!

¿Quieres unirte a la conversación?

¿Sabes inglés? Haz clic aquí para ver más discusiones en el sitio en inglés de Khan Academy.