Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 12455|Répondre: 1

L’en-tête de requête HTTP Expect est expliqué en détail

[Copié le lien]
Publié le 22-04-2021 à 15:32:09 | | |
Introduction au document :La connexion hyperlientérée est visible.

En appelant l’interface de l’autre partie via curl, il a été constaté que le phénomène de timeout était très grave, alors j’ai demandé à la personne de l’interface de l’autre partie, et l’autre partie a dit qu’il était nécessaire d’ajouter :


Après l’avoir ajouté, j’ai découvert que ça fonctionnait vraiment bien, alors j’ai fait des recherches sur la façon de l’utiliser. Lors de l’utilisation du curl pour POST, lorsque « les données POST dépassent 1024 octets », le curl ne déclenchera pas directement une requête POST, mais sera divisé en 2 étapes :

Expect: 100-continue

1. Envoyer une requête contenant un Attend :100-continue, demandant au serveur d’accepter les données

2. Après avoir reçu la réponse à 100 continues retournée par le serveur, les données sont envoyées POSTed au serveur

Mais il y a plusieurs problèmes avec cela :

Tous les serveurs ne répondront pas correctement à 100-continue, par exemple lighttpd, qui retournera 417 Expectation Failed.

causant un retard,Lorsque le client envoie le premier Expect :100-continue, il doit attendre que le serveur réponde avant d’envoyer le corps de la demande

Si vous êtes certain que le serveur de l’autre partie ne rejettera pas les requêtes POST de plus de 1024 octets, vous pouvez éviter cette méthode et éviter les deux effets secondaires mentionnés ci-dessus, et la solution est celle mentionnée au début de l’article.

Environ 100 continuent

Le but de ceci est de :

Cela permet au client de juger si le serveur est prêt à recevoir les données de la requête avant de les envoyer, et si le serveur est prêt à les recevoir, le client enverra effectivement les données.

Comportement du client :

Un client qui envoie 100 continues ne doit pas attendre éternellement une réponse du serveur, et après un délai d’attente, le client doit envoyer directement l’entité.

Comportement côté serveur :

Si le serveur reçoit une demande de 100 continuations, il répondra avec 100 continuations ou enverra un code d’erreur. Le serveur ne peut jamais envoyer 100 continues à un client qui n’envoie pas 100 continuations. Mais certains serveurs le font. IIS 5 envoyant incorrectement une réponse 100-continue

Si le serveur reçoit le corps du client avant d’envoyer la réponse de 100 continuations, cela signifie que le client a décidé de commencer à envoyer des données, donc le serveur ne peut plus envoyer 100 continuations au client.
Le code de paramètre .NET Expect Off Expect est le suivant :

RestSharp est configuré comme suit :







Précédent:La différence entre utf8 et utf8mb4 dans MySQL
Prochain:SignalR ajoute la prise en charge inter-domaines pour l’accès à distance
 Propriétaire| Publié le 6-04-2025 à 21:52:04 |
Méthode de fermeture HttpClient


ou

Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com