6 puntos por GN⁺ 2024-05-27 | 1 comentarios | Compartir por WhatsApp

Ciclo de vida de una solicitud HTTP

1. El cliente envía la solicitud

  • Creación de la solicitud HTTP: El cliente (normalmente un navegador web) crea una solicitud HTTP.
  • Método HTTP: GET, POST, etc.
  • Recurso solicitado: Por ejemplo, /index.html.
  • Versión del protocolo: HTTP/1.1, etc.
  • Encabezados y cuerpo: Incluye encabezados en formato key: value y un cuerpo de mensaje opcional.

2. Consulta DNS

  • Resolución del nombre de dominio: Convierte un nombre de dominio legible por humanos (www.example.com) en una dirección IP (93.184.216.34).
  • Consulta al servidor DNS: El cliente envía una consulta al servidor DNS para convertir el nombre de dominio en una dirección IP.

3. Handshake de TCP

  • Establecimiento de la conexión TCP: El cliente establece una conexión TCP con el servidor.
  • Handshake de 3 pasos:
    • SYN: El cliente envía una solicitud de conexión.
    • SYN-ACK: El servidor confirma la solicitud.
    • ACK: El cliente envía la respuesta de confirmación.

4. Envío de la solicitud HTTP

  • Envío de la solicitud HTTP: Una vez establecida la conexión TCP, el cliente envía la solicitud HTTP real.

5. Enrutamiento de paquetes a través de Internet

  • Transmisión de paquetes: Los paquetes de datos se enrutan hacia el servidor a través de varios dispositivos de red.
  • Función del router: El router determina la ruta óptima de los paquetes.

6. Respuesta del servidor

  • Creación de la respuesta HTTP: El servidor procesa la solicitud HTTP y genera una respuesta.
  • Contenido de la respuesta:
    • Protocolo: La versión de HTTP utilizada.
    • Información de estado: Código de estado HTTP (por ejemplo, 200, 404).
    • Encabezados de respuesta: Similares a los encabezados de la solicitud.
    • Cuerpo de la respuesta: El contenido solicitado (por ejemplo, una página HTML, datos JSON).

7. Renderizado del contenido

  • Procesamiento de la respuesta HTTP: El cliente recibe y procesa la respuesta HTTP.
  • Renderizado del navegador: El navegador interpreta el HTML y renderiza el contenido en pantalla.
  • Solicitud de recursos adicionales: Solicita recursos adicionales como imágenes, CSS y JavaScript.

HTTPS = HTTP + cifrado

Handshake de TLS

  • Handshake de TLS: El cliente y el servidor intercambian claves de cifrado y autenticación.
  • Comunicación cifrada: Después del handshake de TLS, el cliente y el servidor intercambian mensajes cifrados usando HTTP.

Handshake de TLS 1.3

  • Proceso simplificado: TLS 1.3 ofrece menos opciones, por lo que es más simple, seguro y rápido.
  • Pasos clave:
    • Client Hello: El cliente envía al servidor los cipher suites y la versión de TLS que soporta.
    • Server Hello: El servidor envía al cliente el cipher suite y la versión de TLS que eligió.
    • Verificación del certificado: El cliente verifica el certificado SSL del servidor.
    • Generación del premaster secret: El cliente genera el premaster secret y lo envía al servidor.
    • Generación de claves de sesión: El cliente y el servidor generan las claves de sesión.
    • Comunicación segura: Se comunican usando cifrado simétrico seguro con las claves de sesión.

Opinión de GN⁺

  • Comprender la comunicación en Internet: Entender los conceptos básicos de HTTP y HTTPS ayuda a construir una buena base de la comunicación de red.
  • Importancia de la seguridad: Es importante aumentar la seguridad de la transmisión de datos mediante HTTPS.
  • Ventajas de TLS 1.3: Se recomienda usar TLS 1.3 porque es más simple, rápido y seguro.
  • Aplicación práctica: Es necesario aplicar HTTPS en proyectos reales para reforzar la seguridad.
  • Aprendizaje adicional: Aprender más sobre capas y protocolos de red permite obtener una comprensión más profunda.

1 comentarios

 
GN⁺ 2024-05-27
Comentarios de Hacker News
  • Una pregunta sobre por qué, cuando ocurre un problema de red, es difícil saber dónde se originó. Considera poco convincente la explicación de que la ruta de red es no determinista.
  • Una opinión que recomienda ejemplos detallados e interactivos sobre TLSv1.2 y TLSv1.3. Incluye enlace.
  • Una opinión de que las explicaciones en estilo "ELI(a mediocre engineer)" son útiles. Quiere encontrar más ejemplos.
  • La solicitud de alguien que está buscando un ejemplo de código para verificación de firmas SHA256. Conoce la teoría, pero tiene dificultades con la implementación.
  • Una opinión de que la parte del artículo sobre ganar un salario de $300K escribiendo solicitudes HTTP en San Francisco fue lo mejor.
  • Una opinión de que la explicación de que el cliente cifra y envía el premaster secret con la clave pública del servidor es información antigua.
  • Una duda sobre la explicación de que el certificado SSL incluye la clave privada. Una opinión de que es una explicación acorde con el título "Mediocre Engineer".
  • Una broma sobre querer trabajar por $50K menos de salario. Señala que la explicación de TLS <1.3 es incorrecta.
  • Una opinión de que el contenido del artículo está desactualizado y que actualmente el 30% de las solicitudes web usan HTTP3 y CORS. Señala que no hay fecha de publicación.
  • Una opinión de que la explicación de HTTPS parece un resumen hecho por IA. Señala que faltan explicaciones de términos y que se asume que el lector ya conoce la criptografía de clave pública. También indica que la explicación de las capas OSI es incompleta.