Colección de citas famosas - Slogan de motivación - Resumen de conocimientos básicos de la red de aplicaciones

Resumen de conocimientos básicos de la red de aplicaciones

El módulo de red es el módulo más básico y central de la aplicación de la aplicación. El procesamiento de red estable y eficiente es la garantía básica para una buena experiencia de usuario. Este artículo presenta los protocolos de red comúnmente utilizados en el desarrollo diario y cómo utilizarlos.

Primero echemos un vistazo al proceso de transmisión de solicitudes de red:

Los pasos principales son principalmente los siguientes:

El protocolo Http se divide en dos partes: Solicitud y Respuesta. El cliente inicia una Solicitud; después de que el servidor la procesa, devuelve una Respuesta.

Eche un vistazo a la estructura de Solicitud:

La parte superior es el encabezado de la solicitud y la parte inferior es el cuerpo de la solicitud.

La primera línea describe el método de solicitud, la ruta de solicitud y la versión del protocolo http. Cada línea subsiguiente describe un campo de encabezado de solicitud. El encabezado y el cuerpo de la solicitud están separados por dos nuevas líneas.

Campos de encabezado de solicitud de uso común:

Código de respuesta: si la solicitud es exitosa se juzga en función del código de respuesta. Cada código de respuesta corresponde a su propio significado. Para obtener más información, consulte la wiki.

Encabezados de respuesta de uso común:

La cookie son los datos del par clave-valor devueltos con la respuesta, que se almacena localmente. La próxima vez que visite el mismo dominio, los kvs de la cookie se enviarán al servidor junto con la solicitud. Los desarrolladores de backend pueden configurar las cookies correspondientes según las necesidades comerciales.

Para escenarios de aplicaciones, usar el protocolo http para manejar solicitudes de red es la forma más simple, pero no la más eficiente (opinión personal)

Como se muestra en la figura anterior, el consumo de Solicitudes HTTP Consta principalmente de cuatro partes. Analice las estrategias de optimización en torno a estas cuatro partes.

La solicitud más rápida es no realizar ninguna solicitud. El almacenamiento en caché de la red no solo debe manejarse en la capa de protocolo, sino que el almacenamiento en caché de datos también debe manejarse en la capa empresarial. Cuando no sea necesario, intente no iniciar solicitudes de red y utilizar los datos del caché directamente.

El sistema cuenta con la implementación de resolución Dns. De forma predeterminada, la API del sistema se llama directamente para realizar operaciones de consulta Dns.

http 1.1 tiene por defecto la configuración Connection:Keep-Alive. Esto significa que la solicitud no se cerrará inmediatamente después de que se complete. Las solicitudes idénticas posteriores se reutilizarán a través del enlace, ahorrando el tiempo necesario para establecer el enlace TCP.

Cuando el ancho de banda es fijo, reduce el tamaño de los paquetes de datos enviados y reduce el tiempo de transmisión de datos.

Relativamente hablando, los formatos json y urlEncode ocupan menos espacio. formdata es relativamente grande y generalmente se usa al cargar archivos.

El principio es el mismo que el anterior, reduciendo el tamaño de los paquetes de datos y reduciendo el tiempo de transmisión de datos.

Hay dos aspectos en la estrategia de manejo de seguridad. Uno es agregar verificación de seguridad en uso y el otro es usar protocolos de seguridad en los protocolos, como HTTPS.

Una práctica común para la interacción front-end y back-end. Ciertos valores de los parámetros solicitados se concatenan y luego se genera una firma agregando sal al valor MD5. Agregue el valor de la firma a los parámetros de la solicitud. El backend también necesita verificar la firma después de recibir la solicitud. Si es inconsistente, significa que los parámetros de la solicitud han sido manipulados y no se pasarán.

Un método un poco más estricto es ordenar naturalmente todos los parámetros de la solicitud según el valor clave y luego utilizar el método anterior para calcular la firma nuevamente.

Este método sirve principalmente para evitar la manipulación de parámetros, pero no evita la interceptación.

Utilizar HTTPS puede solucionar problemas de seguridad del protocolo. La actualización integral a HTTPS es la tendencia actual en la industria. La siguiente figura es un diagrama simplificado del proceso de procesamiento HTTPS:

El protocolo HTTP es una forma pasiva de procesar mensajes. En muchos escenarios de aplicaciones, el servidor necesita enviar datos activamente al cliente. Usar el protocolo WS para mantener conexiones largas de cliente a servidor es una buena solución. Actualmente se utiliza ampliamente en escenarios de mensajería instantánea o transmisión en vivo.

Las dos imágenes anteriores muestran la solicitud y respuesta del protocolo ws.

Echemos un vistazo a la composición de datos de cada cuadro bajo el protocolo ws:

Cada cuadro de datos contiene información de encabezado de 2 bytes.

FIN indica si es el último fotograma.

RSV1/2/3 es un campo de extensión. El cliente y el servidor pueden implementar operaciones adicionales en el protocolo acordando los valores de estos campos, como por ejemplo si habilitar la compresión de datos.

El código OP es el tipo de operación de cada cuadro. Por ejemplo, si el marco actual es un marco de operación o un marco de datos

MASK 0/1 indica si la máscara está configurada

LENGTH es la longitud del paquete de datos

después de la información del encabezado de 2 bytes Trae los datos reales de todo el cuadro.

La próxima generación del protocolo http. Resuelve muchos problemas en http y se utiliza cada vez más. Mi resumen no es muy bueno. Consulte otro blog para obtener detalles sobre HTTP 2.0.

El escenario de red de la aplicación es mucho más complicado e inestable que el de la PC. Para las aplicaciones, las características del modelo de red ideal deben tener:

Usar diferentes herramientas para resolver problemas en diferentes escenarios. El punto clave es estar familiarizado con las características de cada protocolo y cómo usarlo.

Anuncio: Biblioteca de herramientas de red BJNetwork basada en OkHttp