Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 12455|Respuesta: 1

El encabezado de solicitud HTTP Expect se explica en detalle

[Copiar enlace]
Publicado el 22-4-2021 15:32:09 | | |
Introducción al documento:El inicio de sesión del hipervínculo es visible.

Al llamar a la interfaz de la otra parte a través de curl, se comprobó que el fenómeno del tiempo de espera era muy grave, así que pregunté a la persona de la interfaz de la otra parte, y la otra parte dijo que era necesario añadir:


Después de añadirlo, descubrí que funcionaba muy bien, así que investigué cómo usarlo. Al usar curl para POST, cuando "los datos POST son mayores a 1024 bytes", curl no iniciará directamente una solicitud POST, sino que se dividirá en 2 pasos:

Expect: 100-continue

1. Enviar una solicitud que contenga un Expect:100-continue, pidiendo al servidor que acepte los datos

2. Tras recibir la respuesta de 100 continuaciones devuelta por el servidor, los datos se envían por POST al servidor

Pero hay varios problemas con esto:

No todos los servidores responderán correctamente a 100-continue, por ejemplo lighttpd, que devolverá 417 Expectation Failed.

causando retraso,Cuando el cliente envía el primer Expect:100-continue, debe esperar a que el servidor responda antes de enviar el cuerpo de la solicitud

Si estás seguro de que el servidor de la otra parte no rechazará solicitudes POST de más de 1024 bytes, puedes evitar usar este método y evitar los dos efectos secundarios mencionados anteriormente, y la solución es la que se menciona al principio del artículo.

Continúan unas 100

El propósito de esto es:

Permite al cliente juzgar si el servidor está dispuesto a recibir los datos de la solicitud antes de enviarlos, y si el servidor está dispuesto a recibirlos, el cliente realmente enviará los datos.

Comportamiento del cliente:

Un cliente que envía 100 continuaciones no debe esperar eternamente una respuesta del servidor, y tras un periodo de tiempo de espera, el cliente debe enviar directamente a la entidad.

Comportamiento en el servidor:

Si el servidor recibe una solicitud de 100 continuaciones, responderá con 100 continuar o enviará un código de error. El servidor nunca puede enviar 100 continuaciones a un cliente que no envíe 100 continuas. Pero algunos servidores sí. IIS 5 enviando incorrectamente la respuesta 100-continue

Si el servidor recibe el cuerpo del cliente antes de enviar la respuesta de 100 continuos, significa que el cliente ha decidido empezar a enviar datos, por lo que el servidor ya no puede enviar 100 continuaciones al cliente.
El código de configuración .NET Expect Off Expect es el siguiente:

RestSharp está organizado de la siguiente manera:







Anterior:La diferencia entre utf8 y utf8mb4 en MySQL
Próximo:SignalR añade soporte cruzado para acceso remoto
 Propietario| Publicado el 6-4-2025 21:52:04 |
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com