Conceptos básicos de HTTP
HTTP es la abreviatura de Hyper Text Transfer Protocol. Es un protocolo de capa de aplicación, que consta de solicitudes y respuestas, y es un modelo estándar cliente-servidor.
Primero, introduzcamos los conceptos de efectos secundarios e idempotencia. Los efectos secundarios se refieren a cambios en los recursos del servidor. La búsqueda no tiene efectos secundarios, mientras que el registro sí lo es. La idempotencia se refiere al envío de solicitudes M y N cuando el estado del recurso en el servidor es el mismo (las dos solicitudes no son iguales y ambas son mayores que 1. Por ejemplo, registrar 10 y 11 cuentas no es idempotente). 11 revisiones son idempotentes. En términos de escenarios de aplicación típicos, Get se usa principalmente en escenarios que no tienen efectos secundarios y son idempotentes, como la búsqueda de palabras clave, mientras que Post se usa principalmente en escenarios que tienen efectos secundarios y no son idempotentes, como el registro.
Indica que la solicitud ha sido recibida y continuará procesándose.
El protocolo HTTP utiliza un modelo de "solicitud-respuesta" y HTTP se basa en TCP para las conexiones. En el modo normal (sin mantenimiento), cada solicitud o respuesta requiere que se establezca y desconecte una conexión inmediatamente después de su finalización.
Cuando se utiliza Conexión: modo keep-alive (también conocido como conexión persistente, reutilización de conexión), keep-alive mantendrá viva la conexión cliente-servidor, es decir, la conexión TCP subyacente no se cerrará. y mantener La función -alive evita restablecer la conexión en solicitudes posteriores al servidor.
[Error al cargar la imagen...(image-e0197e-1569467184701)]
Después de usar la canalización, las solicitudes y las respuestas ya no se alternan en secuencia. Puede admitir el envío de múltiples solicitudes a la vez y la recepción de múltiples respuestas al mismo tiempo.
Cuando el cliente envía una solicitud al servidor, el cliente declara qué formatos de datos son aceptables y cuáles son algunas restricciones relacionadas con los datos; cuando el servidor recibe la solicitud, utiliza esta información para decidir qué datos; devolver.
Política de seguridad de contenido de CSP
Ejemplo:
En comparación con HTTP 1, HTTP 2.0 mejora enormemente el rendimiento de la red.
HTTP2 utiliza un formato binario para la transmisión en lugar del formato de texto de HTTP 1.x. A diferencia de los mecanismos secuenciales y de bloqueo de HTTP 1.x, todas las solicitudes al mismo nombre de dominio se completan simultáneamente a través de la misma conexión TCP.
Este es el núcleo de todas las mejoras de rendimiento en HTTP 2.0. En versiones anteriores de HTTP, transfiríamos datos a través de texto. Con el nuevo mecanismo de codificación introducido en HTTP 2.0, todos los datos transferidos se fragmentarán y codificarán en formato binario.
En HTTP 1.x, múltiples solicitudes simultáneas requieren múltiples conexiones TCP. Para controlar los recursos, el navegador limitará entre 6 y 8 conexiones TCP. En HTTP2
HTTP 2.0 tiene dos conceptos muy importantes: marcos y flujos.
El cuadro representa la unidad más pequeña de datos. Cada cuadro identifica a qué flujo pertenece el cuadro, y un flujo es un flujo de datos compuesto de varios cuadros.
La multiplexación significa que pueden existir múltiples flujos dentro de una única conexión TCP. En otras palabras, se pueden enviar múltiples solicitudes y el otro extremo puede saber qué solicitud pertenece a cuál a través del identificador en el marco. Esta técnica evita el problema de bloqueo del encabezado de cola de versiones anteriores de HTTP y mejora enormemente el rendimiento de la transferencia.
[Error en la carga de la imagen... (image-f4755d-1569467184697)]
En HTTP 1.X, usamos texto para transmitir encabezados, y el encabezado lleva En el caso de cookies, cada transferencia repetida puede requerir de cientos a miles de bytes.
En HTTP 2.0, los encabezados transmitidos se codifican mediante compresión HPACK, lo que reduce el tamaño del encabezado. Hay una tabla de índice en ambos extremos para registrar los encabezados que han aparecido, de modo que los nombres clave de los encabezados grabados se puedan transmitir durante transmisiones posteriores, y el otro extremo pueda encontrar los valores correspondientes según los nombres clave al recibir. datos.
En HTTP 2.0, el servidor puede impulsar activamente otros recursos después de que el cliente los solicite.
Imagínese el siguiente escenario en el que el cliente solicita ciertos recursos. Puede utilizar la tecnología de inserción del lado del servidor para enviar los recursos necesarios al cliente por adelantado, reduciendo así algunos retrasos. Por supuesto, también puedes utilizar la tecnología de búsqueda previa si tu navegador es compatible.
Este proceso es complicado y primero es necesario entender dos conceptos. Cifrado simétrico y cifrado asimétrico
El cifrado simétrico significa que ambas partes que se comunican utilizan la misma clave para cifrar y descifrar. El cifrado simétrico es simple y tiene un buen rendimiento, pero no puede resolver el problema de seguridad de enviar la clave a la otra parte por primera vez y los piratas informáticos lo interceptan fácilmente.
El cifrado asimétrico es más seguro, pero el problema es que es lento y afecta al rendimiento
HTTPS combina dos métodos de descifrado, es decir, tras cifrar la clave de cifrado simétrica con una pública asimétrica key Envíelo a la otra parte y luego la otra parte usa la clave privada para descifrar la clave de cifrado simétrica. Después de eso, las barras paralelas pueden comunicarse mediante cifrado simétrico.
Esto plantea un nuevo problema, el problema del intermediario.
Si hay un intermediario entre el cliente y el servidor en este momento, siempre que las claves públicas de las partes que se comunican se reemplacen con sus propias claves públicas, el intermediario puede descifrar fácilmente todos los datos entre las partes. partes comunicantes.
En este punto debe haber un certificado intermediario emitido por un certificado de tercero seguro (CA). El certificado contiene:
Pero esto no es lo suficientemente seguro. Si el intermediario manipula el certificado, la prueba de identidad será en vano. Entonces, existe una nueva tecnología, la firma digital.
La firma digital consiste en utilizar el algoritmo hash propio de la CA para HASH el contenido del certificado para obtener un resumen y luego usar este resumen para cifrar la clave privada de la CA. se forma una firma digital
Cuando alguien más envía su certificado, uso el mismo algoritmo hash para generar un resumen del mensaje nuevamente y luego uso la clave pública de la CA para descifrar la firma digital y obtener la CA Comparando el resumen del mensaje creado, sabrá si el intermediario ha sido manipulado
Esto garantizará la seguridad de la comunicación en la mayor medida