[Prueba de automatización de interfaz] Explicación detallada del protocolo HTTP

protocolo

Para entenderlo simplemente, el lenguaje de comunicación entre computadoras se llama protocolo. Diferentes computadoras solo pueden comunicarse usando el mismo protocolo. Entonces, un protocolo de red es una colección de reglas, estándares o convenciones establecidas para el intercambio de datos en una red informática.

modelo OSI

En 1978, la Organización Internacional de Normalización propuso el "Modelo de referencia de Internet de sistema abierto", el famoso modelo OSI. Divide el protocolo de comunicación de la arquitectura de red informática en 7 capas, de arriba a abajo: capa física, capa de enlace de datos, capa de red, capa de transporte, capa de sesión, capa de presentación y capa de aplicación. (Cuál es el valor predeterminado de la red de capa 7 depende de Baidu)

Entonces, nuestro tema de hoy, el protocolo HTTP, está en la capa de aplicación y también es el protocolo más utilizado en la capa de aplicación.

HTTP

El Protocolo de transferencia de hipertexto es un sistema de información hipermedia distribuido, colaborativo y orientado a la capa de aplicación. Es un protocolo apátrida de propósito general.

principio

El protocolo HTTP funciona en una arquitectura cliente-servidor, en la que el cliente envía todas las solicitudes al servidor a través de URL. El servidor envía información de respuesta al cliente según la solicitud recibida. El protocolo HTTP define cómo el cliente envía una solicitud al servidor y cómo el servidor transmite la solicitud de respuesta al cliente, por lo que el protocolo de solicitud HTTP adopta el modelo de solicitud/respuesta.

 

cliente

El cliente tiene dos funciones principales:

1. Enviar una solicitud al servidor.

2. Recibir el mensaje devuelto por el servidor e interpretarlo en información amigable para que podamos leer.

El cliente probablemente incluya: navegador, aplicación, etc.

Lo que más podemos usar hoy en día es el navegador. Cuando un usuario ingresa una URL en la barra de direcciones y presiona Enter, el navegador hará lo siguiente:

1.Resolver protocolos y nombres de dominio

2. Utilice el protocolo HTTP y cree un mensaje de solicitud para enviar una solicitud al servidor.

3. Recibir el contenido devuelto por el servidor y mostrarlo al cliente.

Servidor

El servidor comenzará a procesar la solicitud después de recibir la solicitud enviada por el cliente.

El proceso de procesamiento del servidor es el siguiente.

El software del servidor siempre está escuchando el puerto para ver si llegan nuevas solicitudes. Por ejemplo, después de crear un sitio web, iis o tomcat siempre escucharán el puerto 80 de forma predeterminada y esperarán a que lleguen las solicitudes HTTP al servidor.

1. Establezca una conexión: si el cliente ha abierto una conexión persistente con el servidor, puede usarla directamente, de lo contrario, el cliente debe abrir una nueva conexión en el servidor.

2. Reciba el mensaje de solicitud: cuando lleguen datos a la conexión, el servidor web leerá los datos de la conexión de red y analizará el contenido del mensaje de solicitud.

3. Procese la solicitud: una vez recibida la solicitud, el servidor puede procesarla de acuerdo con el mensaje de solicitud. Por ejemplo, en el método de publicación, los datos del cuerpo del mensaje se extraen y se insertan en la base de datos.

4. Acceder a los recursos: una vez procesada la solicitud, por ejemplo, la web generará una serie de páginas HTML o imágenes y otra información basada en los datos, este paso accederá a estos archivos físicos almacenados en el servidor.

5. Construya una respuesta: después de que el servidor web identifica el recurso, construye un mensaje de respuesta, que incluye: código de estado, encabezado de respuesta, cuerpo de respuesta, etc.

6. Enviar respuesta: el servidor envía los datos de respuesta a la máquina cliente.

7. Registro: cuando finaliza la solicitud, el servidor registrará un registro de solicitud en el archivo de registro.

Todo el mundo sabe que el navegador envía una solicitud al cliente a través de la dirección URL, así que echemos un vistazo a la composición de la URL.

URL
实例URL:https://i.cnblogs.com/EditPosts.aspx?postid=10913098&update=1#name

composición

Una URL consta principalmente de las siguientes partes:

1. Parte del acuerdo

El protocolo de esta URL es HTTP

2. Parte del nombre de dominio

La parte del nombre de dominio de la URL es /www.kath2.com. La dirección IP también se puede utilizar como nombre de dominio en la URL.

3.Parte del puerto

La parte del puerto sigue al nombre de dominio: De lo contrario, significa que la URL utiliza el puerto predeterminado 80 y el puerto no es una parte obligatoria de la URL.

4. Parte del directorio virtual

Desde el primer / después del nombre de dominio hasta el último /, el directorio virtual no es una parte obligatoria de la URL.

5. Parte del nombre del archivo

¿El último/a? No. es la parte del nombre del archivo. si no lo hay? No., entonces hasta el No. #, si no? y el signo #, entonces la parte del nombre del archivo va desde el último/principio hasta el final del nombre de dominio. La parte del nombre del archivo en el ejemplo es EditPosts.aspx

6.Parte de anclaje

Desde # hasta el final

7. Parte de parámetros

¿de? Comenzando con el signo y terminando con el signo #, varios parámetros están separados por el signo comercial.

mensaje

El medio utilizado para la transferencia de información entre el cliente y el servidor se llama mensaje y se divide en dos partes: solicitud y respuesta.

mensaje de solicitud

El proceso por el cual el cliente envía datos al servidor se llama solicitud.

composición

El mensaje de solicitud se divide en 4 partes.

1. Solicita la primera línea

Contiene el método de solicitud, el recurso al que se accederá y la versión HTTP solicitada.

2. Solicitar encabezado

Especifica información adicional que utilizará el servidor.

3. Línea en blanco

La línea en blanco después del encabezado del mensaje de solicitud es obligatoria

4. Cuerpo de solicitud

Get a menudo no tiene un cuerpo de solicitud y el cuerpo de solicitud posterior contiene los parámetros solicitados.

Formato

 

Ejemplo

obtener instancia de solicitud

ejemplo de solicitud de publicación

Método de solicitud

Los principales métodos de solicitud son obtener, publicar, colocar, eliminar, etc.

obtener solicitud

1. Obtenga datos del servidor y devuelva la parte de la entidad de la respuesta, que se puede comparar con la operación de selección de la base de datos y no afectará la base de datos en sí.

2. Sin cuerpo de solicitud

3. Los parámetros de solicitud se agregan a la URL, con? Comenzando con el número, varios parámetros están separados por &

4. Generalmente, las solicitudes de obtención se utilizan para solicitudes que no son confidenciales porque no es seguro seguir los parámetros después de la URL.

5. La longitud de los parámetros transmitidos es limitada.

solicitud de publicación

1. Envíe datos al recurso especificado para procesar la solicitud (como enviar un formulario o cargar un archivo). Los datos se incluyen en el cuerpo de la solicitud. Las solicitudes POST pueden resultar en la creación de nuevos recursos y/o modificación de recursos existentes.

2. Por lo general, la solicitud de publicación contiene el cuerpo de la solicitud.

3. Los parámetros de la solicitud se almacenan en el cuerpo de la solicitud y pueden estar en cualquier formato.

4. Los datos están relativamente seguros

5. No hay límite de tamaño para los datos solicitados y puede considerarse ilimitado

No se presentarán otras solicitudes.

mensaje de respuesta

El cliente envía una solicitud al servidor y el proceso en el que el servidor devuelve datos al cliente después del procesamiento se denomina respuesta.

composición

El mensaje de respuesta también contiene 4 partes.

1. Responde a la primera línea.

Versión del protocolo, código de estado, información de estado de éxito y error.

2. Encabezado de respuesta

Se utiliza para describir información adicional que utilizará el cliente.

3. Línea en blanco

Se requiere una línea en blanco después del encabezado de respuesta

4.Datos de respuesta

Datos y otra información devuelta al cliente.

Formato

 

Ejemplo

obtener instancia de respuesta

 ejemplo de respuesta posterior

 

Código de estado de respuesta
extensión HTTP
Mecanismo de cookies

¿Qué son las galletas?

Todo el mundo sabe que cuando iniciamos sesión en un sitio web, a menudo vemos la opción "recordarme" debajo al ingresar nuestra cuenta y contraseña. Entonces, siempre que marquemos esta opción, no necesitamos ingresar nuestra cuenta y contraseña cuando inicie sesión nuevamente Puede iniciar sesión en el sitio web con su contraseña, y este método se implementa a través del mecanismo de cookies. Se utiliza para registrar el estado del usuario y la identidad del usuario.

Las cookies son información especial enviada por el servidor al cliente. Esta información se almacena en el cliente en forma de archivos de texto. Luego, el cliente traerá esta información especial cada vez que envíe una solicitud al servidor para que el servidor pueda identificarla. .

Proceso de manejo de cookies

Cuando el usuario solicita al servidor por primera vez, el mensaje de solicitud no contiene información de Cookies. Cuando el servidor recibe la solicitud del cliente, responderá con la información al cliente. En este momento, el encabezado del mensaje de respuesta contendrá un campo de información de configuración de cookies y contiene la información de identidad del usuario. Cuando el cliente recibe set-Cookie, guardará la cookie localmente (en la memoria o en el disco duro)

Cuando el cliente vuelve a enviar un mensaje de solicitud al servidor, el encabezado del mensaje de solicitud llevará la información de la Cookie y la enviará al servidor, quien analizará la información contenida en la Cookie y generará dinámicamente los datos correspondientes al cliente.

Ejemplo

primera visita

http://120.78.128.25:8765 sitio web, utilizamos Fiddler para capturar el mensaje de solicitud y el mensaje de respuesta para la página de inicio de este sitio web

Se puede ver que cuando se solicita el sitio web por primera vez, el mensaje de solicitud no contiene información de cookies y el mensaje de respuesta devuelve una cookie configurada al cliente.

segunda visita

En el segundo mensaje de solicitud y mensaje de respuesta, podemos ver que se han producido cambios.

El mensaje de solicitud ya contiene información de cookies, pero el mensaje de respuesta ya no contiene información de configuración de cookies.

Mientras no conozcamos la información de las cookies, podremos acceder directamente a este sitio web dentro del período de validez en el futuro.

Mecanismo de sesión

¿Qué es la sesión?

La sesión es otro mecanismo para registrar el estado y la identidad del cliente. La diferencia es que la cookie se almacena localmente en el cliente, mientras que la sesión se almacena en el servidor.

Tiene la misma función que el mecanismo de Cookie, excepto que Cookie confirma la identidad del cliente verificando el pase del cliente, mientras que Session confirma la identidad del cliente a través de la tabla de detalles del cliente en el servidor.

Procesamiento de sesión

Cuando el cliente solicita al servidor por primera vez, el servidor creará una sesión y asignará un identificador único de identificación de sesión a la sesión y agregará contenido a la sesión. Después de que el servidor reciba la solicitud del cliente, devolverá la información de respuesta a el cliente, luego el encabezado del mensaje de respuesta llevará la identificación de la sesión y la devolverá al cliente.

Cuando el cliente solicita al servidor nuevamente, el encabezado del mensaje de solicitud llevará el ID de sesión anterior (el ID de sesión debe pasarse a través de una cookie). Después de recibir la solicitud, el servidor busca el contenido de la sesión correspondiente según el ID de sesión. y analiza y compara si es la misma sesión, la solicitud es enviada por el cliente y luego los datos correspondientes se devuelven al cliente.

la diferencia

Finalmente, usamos un ejemplo de la vida para comprender profundamente la diferencia entre los dos.

Una cafetería que visité con frecuencia ofrecía una taza de café gratis por cada 5 tazas de café. Sin embargo, la posibilidad de consumir 5 tazas de café a la vez es muy pequeña. En este caso, se necesita alguna forma de registrar la cantidad consumida de una determinado cliente. Imagine que en realidad no existen más que las siguientes opciones:

    1. El dependiente de esta tienda es muy bueno. Puede recordar la cantidad consumida por cada cliente. Tan pronto como el cliente entra a la cafetería, el dependiente sabe cómo tratarlo. Este enfoque consiste en que el protocolo en sí admite el estado.

    2. Emitir una tarjeta al cliente, en la que se registra el importe del consumo y suele tener fecha de caducidad. Cada vez que se realiza una compra, si el cliente presenta esta tarjeta, la compra quedará vinculada a compras anteriores o futuras. Este enfoque consiste en mantener el estado en el lado del cliente.

    3. Emitir una tarjeta de membresía al cliente y no registrar ninguna información excepto el número de la tarjeta. Cada vez que un cliente realiza una compra, si el cliente presenta la tarjeta, el dependiente encontrará el registro correspondiente al número de la tarjeta en el libro de registro de la tienda. y agregar alguna información de consumo. . Este enfoque consiste en mantener el estado en el lado del servidor.

Dado que el protocolo HTTP no tiene estado y, por diversas razones, no queremos que tenga estado, las dos últimas soluciones se han convertido en opciones realistas. Específicamente, el mecanismo de cookies utiliza una solución que mantiene el estado en el lado del cliente, mientras que el mecanismo de sesión utiliza una solución que mantiene el estado en el lado del servidor. Al mismo tiempo, también hemos visto que dado que la solución de mantener el estado en el lado del servidor también necesita guardar una identidad en el lado del cliente, es posible que el mecanismo de sesión deba utilizar el mecanismo de cookies para lograr el propósito de guardar la identidad. pero en realidad tiene otras opciones.

Gracias a todos los que leen atentamente mi artículo, siempre hay una cortesía, aunque no es algo muy valioso, si puedes usarlo, puedes llevarlo directamente:

Estos materiales deberían ser el almacén de preparación más completo y completo para los amigos [de pruebas de software]. Este almacén también ha acompañado a decenas de miles de ingenieros de pruebas a través del viaje más difícil. ¡Espero que también pueda ayudarlos! Cualquiera que lo necesite Los socios pueden hacer clic en la pequeña tarjeta a continuación para recibirla  

 

Supongo que te gusta

Origin blog.csdn.net/kk_lzvvkpj/article/details/133083939
Recomendado
Clasificación