Una introducción a HTTP: todo lo que necesita saber

En este artículo, lo guiaré a través de cómo funciona la World Wide Web a un nivel fundamental.

La tecnología principal es HTTP - Protocolo de transferencia de hipertexto. Es el protocolo de comunicación que usa cuando navega por la web.

En un nivel fundamental, cuando visita un sitio web, su navegador realiza una solicitud HTTP a un servidor. Luego, ese servidor responde con un recurso (una imagen, un video o el HTML de una página web), que luego su navegador muestra.

Este es el modelo basado en mensajes de HTTP. Cada interacción HTTP incluye una solicitud y una respuesta.

Por su naturaleza, HTTP no tiene estado.

Sin estado significa que todas las solicitudes están separadas entre sí. Por lo tanto, cada solicitud de su navegador debe contener suficiente información por sí misma para que el servidor cumpla con la solicitud. Eso también significa que cada transacción del modelo basado en mensajes de HTTP se procesa por separado de las demás.

URLs

La URL (Uniform Resource Locator) es probablemente el concepto más conocido de la Web. También es uno de los conceptos más importantes y útiles. Una URL es una dirección web que se utiliza para identificar recursos en la web.

La idea de la web se estructura en torno a recursos. Desde sus inicios, la Web fue la plataforma para compartir archivos de texto / HTML, documentos, imágenes, etc. y, como tal, puede considerarse una colección de recursos.

Protocolo  : la mayoría de las veces son HTTP (o HTTPS para una versión segura de HTTP).

Otros protocolos notables son:

  • Protocolo de transferencia de archivos (FTP): es un protocolo estándar que se utiliza para transferir archivos entre un cliente y un servidor a través de una red.
  • El Protocolo simple de transferencia de correo (SMTP) es un estándar para la transmisión de correo electrónico.

Dominio  : nombre que se utiliza para identificar una o más direcciones IP donde se encuentra el recurso.

Ruta: especifica la ubicación del recurso en el servidor. Utiliza la misma lógica que una ubicación de recursos utilizada en el dispositivo en el que está leyendo este artículo (es decir, /search/cars/VWBeetle.pdf o C: / my cars / VWBeetle.pdf).

Parámetros  : datos adicionales utilizados para identificar o filtrar el recurso en el servidor.

Nota : al buscar artículos y más información sobre HTTP, puede encontrar el término URI (o identificador uniforme de recursos). A veces se usa URI en lugar de URL, pero principalmente en especificaciones formales y por personas que quieren presumir. :)

Solicitudes HTTP

En HTTP, cada solicitud debe tener una dirección URL. Además, la solicitud necesita un método. Los cuatro métodos HTTP principales son:

  • OBTENER
  • PONER
  • ENVIAR
  • ELIMINAR

Explicaré estos métodos, y más, en la sección Métodos HTTP de este artículo.

Y estos métodos corresponden directamente a acciones:

  • leer
  • actualizar
  • crear
  • Eliminar

Todos los mensajes HTTP tienen uno o más encabezados, seguidos de un cuerpo de mensaje opcional. El cuerpo contiene los datos que se enviarán con la solicitud o los datos recibidos con la respuesta.

La primera parte de cada solicitud HTTP contiene tres elementos:

Ejemplo:

  • OBTENER / agrega / resultado de búsqueda? Item = vw + escarabajo HTTP / 1.1

Cuando una URL contiene un "?" signo, significa que contiene una consulta. Eso significa que envía parámetros del recurso solicitado.

  1. La primera parte es un método que indica qué método HTTP se utiliza. El más utilizado es el método GET. El método GET recupera un recurso del servidor web y, dado que GET no tiene un cuerpo de mensaje, no se necesita nada después del encabezado.
  2. La segunda parte es una URL solicitada.
  3. La tercera parte es una versión HTTP que se está utilizando. Versión 1.1. es la versión más común para la mayoría de los navegadores, sin embargo, la versión 2.0 está tomando el relevo.

También hay algunas otras cosas interesantes en una solicitud HTTP:

Encabezado de referencia  : indica la URL desde donde se originó la solicitud.

Encabezado de agente de usuario  : información adicional sobre el navegador que se utiliza para generar la solicitud.

Encabezado de host  : identifica de forma exclusiva un nombre de host; es necesario cuando se alojan varias páginas web en el mismo servidor.

Encabezado de cookie  : envía parámetros adicionales al cliente.

Respuestas HTTP

Al igual que en las solicitudes HTTP, las respuestas HTTP también constan de tres elementos:

Ejemplo:

HTTP / 1.1 200 OK

  1. La primera parte es la versión HTTP que se está utilizando.
  2. La segunda parte es el código numérico del resultado de la solicitud.
  3. La tercera parte es una descripción textual de la segunda parte.

Hay algunas otras cosas interesantes en una respuesta HTTP:

Encabezado del servidor  : información sobre qué software de servidor web se está utilizando.

Encabezado Set-Cookie  : envía la cookie al navegador.

Cuerpo del mensaje  : es común que una respuesta HTTP contenga un cuerpo de mensaje.

Encabezado Content-Length  : indica el tamaño del cuerpo del mensaje en bytes.

Métodos HTTP

Los métodos más comunes son GET y POST. Pero también hay algunos otros.

GET  : utiliza este método para solicitar datos de un recurso específico donde los datos no se modifican de ninguna manera. Las solicitudes GET no cambian el estado del recurso.

POST  : utiliza este método para enviar datos a un servidor para crear un recurso.

PUT: utiliza este método para actualizar el recurso existente en un servidor utilizando el contenido del cuerpo de la solicitud. Piense en esto como una forma de "editar" algo.

HEAD  : usa este método de la misma manera que usa GET, pero con la distinción de que la devolución de un método HEAD no debe contener cuerpo en la respuesta. Pero la devolución contendrá los mismos encabezados que si se usara GET. Utiliza el método HEAD para comprobar si el recurso está presente antes de realizar una solicitud GET.

TRACE:  utiliza este método para fines de diagnóstico. La respuesta contendrá en su cuerpo el contenido exacto del mensaje de solicitud.

OPCIONES  : utilice este método para describir las opciones de comunicación (métodos HTTP) que están disponibles para el recurso de destino.

PATCH:  utiliza este método para aplicar modificaciones parciales a un recurso.

ELIMINAR: utiliza este método para eliminar el recurso especificado.

DESCANSO

La transferencia de estado representacional (REST) ​​es un estilo de arquitectura en el que las solicitudes y respuestas contienen representaciones del estado actual del recurso del sistema.

Manera "regular":

  • //carapp.com/search?make=wv&model=beetle

Estilo DESCANSO:

  • //carapp.com/search/vw/beetle

Puede obtener más información sobre REST aquí si tiene curiosidad.

Encabezados HTTP

Hay tres componentes principales que conforman la estructura de solicitud / respuesta. Éstas incluyen:

  • Primera linea
  • Encabezados
  • Cuerpo / Contenido

Ya hablamos sobre la primera línea en las solicitudes y respuestas HTTP, y también se mencionó la función del cuerpo. Ahora hablaremos de los encabezados HTTP.

Los encabezados HTTP se agregan después de la primera línea y se definen como pares nombre: valor separados por dos puntos. Los encabezados HTTP se utilizan para enviar parámetros adicionales junto con la solicitud o respuesta.

Como ya dije, el cuerpo del mensaje incluye los datos a enviar con la solicitud o los datos recibidos junto con la respuesta.

Existen diferentes tipos de encabezados que se agrupan según su uso en 4 categorías amplias:

  •  Encabezado general : encabezados que se pueden usar tanto en solicitudes como en mensajes de respuesta y que son independientes de los datos que se intercambian.
  • Encabezado de solicitud  : estos encabezados definen parámetros para los datos solicitados o parámetros que brindan información importante sobre el cliente que realiza la solicitud.
  • Encabezado de respuesta  : estos encabezados contienen información sobre la respuesta entrante.
  • Encabezado de  entidad: los encabezados de entidad describen el contenido que constituye el cuerpo del mensaje.

Códigos de estado HTTP

Al navegar por Internet, es posible que haya encontrado páginas con "error 404: no encontradas" o "errores 500: el servidor no responde".

Estos son códigos de estado HTTP.

Cada mensaje de respuesta HTTP debe contener un código de estado HTTP en su primera línea, indicándonos el resultado de la solicitud.

Hay cinco grupos de códigos de estado que se agrupan por el primer dígito:

  • 1xx - Informativo.
  • 2xx: la solicitud se realizó correctamente.
  • 3xx: el cliente se redirige a un recurso diferente.
  • 4xx: la solicitud contiene algún tipo de error.
  • 5xx: el servidor encontró un error al completar la solicitud.

Aquí hay una lista completa de códigos de respuesta de estado HTTP y su explicación.

HTTPS (Protocolo seguro de transferencia de hipertexto)

La versión segura del protocolo HTTP es HyperText Transfer Protocol Secure (HTTPS). HTTPS proporciona una comunicación cifrada entre un navegador (cliente) y el sitio web (servidor).

En HTTPS, el protocolo de comunicación se cifra mediante Transport Layer Security (TLS) o Secure Sockets Layer (SSL).

Por lo tanto, el protocolo también se denomina HTTP sobre TLS o HTTP sobre SSL.

Tanto los protocolos TLS como SSL utilizan un sistema de cifrado asimétrico. Los sistemas de cifrado asimétrico utilizan una clave pública (clave de cifrado) y una clave privada (claves de descifrado) para cifrar un mensaje.

Cualquiera puede utilizar la clave pública para cifrar un mensaje. Sin embargo, las claves privadas son secretas y eso significa que solo el receptor previsto puede descifrar el mensaje.

Apretón de manos SSL / TLS

Cuando solicita una conexión HTTPS a un sitio web, el sitio web envía su certificado SSL a su navegador. Ese proceso en el que su navegador y su sitio web inician la comunicación se denomina "protocolo de enlace SSL / TLS".

El protocolo de enlace SSL / TLS implica una serie de pasos en los que el navegador y el sitio web se validan mutuamente y comienzan la comunicación a través del túnel SSL / TLS.

Como probablemente haya notado, cuando se usa un túnel seguro confiable durante una conexión HTTPS, el ícono de candado verde se muestra en la barra de direcciones del navegador.

Beneficios de HTTPS

Los principales beneficios de HTTPS son:

  • La información del cliente, como los números de tarjetas de crédito y otra información confidencial, está encriptada y no puede ser interceptada.
  • Los visitantes pueden verificar que usted es una empresa registrada y que es propietario del dominio.
  • Los clientes saben que se supone que no deben visitar sitios sin HTTPS y, por lo tanto, es más probable que confíen y completen compras en sitios que usan HTTPS.

¡Gracias por leer! Vea más artículos como este en mi perfil de freeCodeCamp. Y mira otras cosas divertidas que creo en mi página de GitHub.