Introducción a HTTP/HTTPS
HTTP (Protocolo de transferencia de hipertexto, Hypertext Transfer Protocol)Es un protocolo de transferencia utilizado para transferir hipertexto desde la red a un navegador local. Define el formato de las solicitudes y respuestas entre el cliente y el servidor. HTTP funciona sobre el modelo TCP/IP, generalmente usando el puerto80。
HTTPS (Protocolo seguro de transferencia de hipertexto, Hypertext Transfer Protocol Secure)Es la versión segura de HTTP. Añade el protocolo SSL/TLS sobre HTTP, proporcionando cifrado de datos, verificación de integridad y autenticación. HTTPS normalmente usa el puerto443。
HTTP
El protocolo HTTP es la abreviatura de Hyper Text Transfer Protocol (Protocolo de transferencia de hipertexto). Es un protocolo de transferencia utilizado para transferir hipertexto desde el servidor de la World Wide Web (WWW: World Wide Web) al navegador local.
HTTP es un protocolo basado en el protocolo de comunicación TCP/IP para transmitir datos (archivos HTML, archivos de imagen, resultados de consultas, etc.).
HTTPS
El protocolo HTTPS es la abreviatura de HyperText Transfer Protocol Secure (Protocolo seguro de transferencia de hipertexto). Es un protocolo de transferencia que permite comunicaciones seguras a través de redes informáticas.
HTTP en sí mismo no es seguro, porque los datos transmitidos no están cifrados y pueden ser interceptados o alterados. Para resolver este problema, se introdujo HTTPS, que añade el protocolo SSL/TLS sobre HTTP, proporcionando cifrado y autenticación para la transferencia de datos.
HTTPS se comunica a través de HTTP, pero utiliza SSL/TLS para cifrar los paquetes de datos. El propósito principal del desarrollo de HTTPS es proporcionar autenticación de identidad para los servidores web y proteger la privacidad e integridad de los datos intercambiados.
La URL de HTTP comienza conhttp://y usa por defecto el puerto80, mientras que la URL de HTTPS comienza conhttps://y usa por defecto el puerto443。

Principio de funcionamiento de HTTP
El protocolo HTTP funciona sobre una arquitectura cliente-servidor.
El proceso de trabajo de HTTP normalmente es el siguiente:- El cliente inicia la solicitud.: El usuario introduce la URL a través del cliente (como un navegador), y el cliente envía una solicitud HTTP al servidor.
- El servidor procesa la solicitud.: Después de recibir la solicitud, el servidor la procesa de acuerdo con el tipo de solicitud (como GET, POST, etc.) y el recurso solicitado.
- El servidor devuelve la respuesta.: El servidor envuelve el resultado del procesamiento en un mensaje de respuesta HTTP y lo envía de vuelta al cliente.
- El cliente renderiza la página.: Después de recibir la respuesta, el cliente renderiza la página según el contenido de la respuesta (como HTML, imágenes, etc.) y la muestra al usuario.
Los servidores web incluyen: servidor Nginx, servidor Apache, servidor IIS (Internet Information Services), etc.
El número de puerto predeterminado de HTTP es 80, pero también puedes cambiarlo a 8080 u otro puerto.
Tres notas importantes sobre HTTP:
HTTP es sin conexión: Sin conexión significa que cada conexión se limita a procesar una sola solicitud. El servidor procesa la solicitud del cliente y, tras recibir la respuesta del cliente, cierra la conexión. Este método permite ahorrar tiempo de transmisión.
HTTP es independiente del medio: Esto significa que, siempre que el cliente y el servidor sepan cómo manejar el contenido de los datos, cualquier tipo de datos puede enviarse a través de HTTP. El cliente y el servidor especifican el tipo de contenido MIME-type adecuado.
HTTP es sin estado: El protocolo HTTP es un protocolo sin estado. Sin estado significa que el protocolo no tiene capacidad de memoria para el procesamiento de transacciones. La falta de estado implica que si el procesamiento posterior necesita información anterior, debe reenviarse, lo que puede aumentar la cantidad de datos transmitidos en cada conexión. Por otro lado, cuando el servidor no necesita información previa, su respuesta es más rápida.
El siguiente diagrama muestra el flujo de comunicación del protocolo HTTP:

Función de HTTPS
La función principal de HTTPS es crear un canal seguro en una red insegura y, cuando se utilizan los paquetes de cifrado adecuados y el certificado del servidor puede verificarse y ser confiable, proporciona una protección razonable contra la interceptación y los ataques de intermediario (man-in-the-middle).
La confianza de HTTPS se basa en las autoridades de certificación (CA) preinstaladas en el sistema operativo.
Por lo tanto, una conexión HTTPS con un sitio web solo se puede confiar en los siguientes casos:
- El navegador implementa correctamente HTTPS y el sistema operativo tiene instalada una autoridad de certificación correcta y confiable;
- La autoridad de certificación solo confía en sitios web legítimos;
- El sitio web visitado proporciona un certificado válido, es decir, emitido por una autoridad de certificación confiable para el sistema operativo (la mayoría de los navegadores muestran una advertencia ante certificados no válidos);
- El certificado verifica correctamente el sitio web visitado (por ejemplo, al acceder ahttps://www.example.comse recibe un certificado emitido para www.example.com en lugar de otros dominios);
- La capa de cifrado de este protocolo (SSL/TLS) puede proporcionar eficazmente autenticación y cifrado de alta resistencia.
Navegadores como Google Chrome, Internet Explorer y Firefox muestran advertencias cuando un sitio web contiene contenido mixto compuesto por contenido cifrado y no cifrado.
Los enlaces HTTP se muestran como no seguros:

Los enlaces HTTPS se muestran como seguros:

Diferencias entre HTTP y HTTPS
Aunque HTTP y HTTPS son muy similares en nombre, tienen diferencias esenciales en seguridad: HTTPS, mediante el uso del protocolo SSL/TLS, proporciona cifrado y verificación de integridad para la transferencia de datos, protegiendo así la privacidad y la seguridad de los datos del usuario. Con la creciente conciencia sobre la seguridad en la red, cada vez más sitios web comienzan a usar HTTPS para proteger los datos de los usuarios.

Al mismo tiempo, los principales navegadores y motores de búsqueda también están fomentando que los sitios web usen HTTPS.
Por lo tanto, para los sitios web que implican la transmisión de información sensible, se recomienda usar HTTPS para mejorar la seguridad.
Las principales diferencias son las siguientes:
-
Cifrado:
- HTTP: Los datos no se cifran durante la transmisión y son fáciles de interceptar y alterar.
- HTTPS: Utiliza el protocolo SSL/TLS para cifrar los datos transmitidos, protegiendo la seguridad durante la transferencia de datos.
-
Puerto:
- HTTP: Usa el puerto 80 por defecto.
- HTTPS: Usa el puerto 443 por defecto.
-
Seguridad:
- HTTP: No proporciona cifrado de datos, la seguridad es baja.
- HTTPS: Proporciona cifrado de datos y verificación de integridad, la seguridad es alta.
-
Certificado:
- HTTP: No requiere certificado.
- HTTPS: Requiere un certificado SSL para habilitar el cifrado y verificar la identidad del servidor.
-
Rendimiento:
- HTTP: Debido a que no cifra los datos, el rendimiento es ligeramente superior al de HTTPS.
- HTTPS: Debido a que es necesario cifrar y descifrar, puede haber cierta sobrecarga de rendimiento.
-
Optimización para motores de búsqueda (SEO):
- HTTP: Los motores de búsqueda pueden reducir la clasificación de los sitios web que no usan HTTPS.
- HTTPS: Los motores de búsqueda tienden a indexar y mostrar preferentemente los sitios web que usan HTTPS.
-
Visualización en el navegador:
- HTTP: En la mayoría de los navegadores modernos, los sitios web HTTP normalmente se muestran como "No seguro".
- HTTPS: El navegador muestra un icono de candado, indicando que el sitio web es seguro.
-
Costo:
- HTTP: Generalmente es gratuito.
- HTTPS: Requiere la compra de un certificado SSL, lo que puede tener un cierto costo.
-
Escenarios de aplicación:
- HTTP: Adecuado para sitios web que no necesitan transmitir información sensible, como sitios de noticias, blogs, etc.
- HTTPS: Adecuado para sitios web que necesitan transmitir información sensible, como banca en línea, compras en línea, correo electrónico, etc.