Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 12455|Risposta: 1

L'intestazione della richiesta HTTP Expect è spiegata in dettaglio

[Copiato link]
Pubblicato il 22-04-2021 15:32:09 | | |
Introduzione al documento:Il login del link ipertestuale è visibile.

Quando si chiamava l'interfaccia dell'altra parte tramite curl, si è riscontrato che il fenomeno del timeout era molto serio, così ho chiesto alla persona dell'interfaccia dell'altra parte, e l'altra parte ha detto che era necessario aggiungere:


Dopo averlo aggiunto, ho scoperto che funzionava davvero bene, così ho cercato di ricercare come usarlo. Quando si utilizza il curl per POST, quando "i dati POST sono superiori a 1024 byte", il curl non avvierà direttamente una richiesta POST, ma sarà suddiviso in 2 fasi:

Expect: 100-continue

1. Inviare una richiesta contenente un Aspett:100-continue, chiedendo al server di accettare i dati

2. Dopo aver ricevuto la risposta a 100 continue restituita dal Server, i dati vengono inviati al Server

Ma ci sono diversi problemi con questo:

Non tutti i server risponderanno correttamente a 100-continue, ad esempio lighttpd, che restituirà 417 Aspettativa Fallita.

causando ritardo,Quando il client invia il primo Aspett:100-continue, deve aspettare che il server risponda prima di inviare il corpo della richiesta

Se sei sicuro che il server dell'altra parte non rifiuterà richieste POST superiori a 1024 byte, puoi evitare questo metodo e i due effetti collaterali sopra menzionati, e la soluzione è quella menzionata all'inizio dell'articolo.

Circa 100 continuano

Lo scopo di questo è:

Permette al client di giudicare se il server è disposto a ricevere i dati della richiesta prima di inviarli e, se il server è disposto a riceverli, il client invierà effettivamente i dati.

Comportamento del cliente:

Un client che invia 100 continue non dovrebbe aspettare indefinitamente una risposta dal server e, dopo un periodo di timeout, il client dovrebbe inviare direttamente l'entità.

Comportamento lato server:

Se il server riceve una richiesta di 100 continue, risponderà con 100 continue o invierà un codice di errore. Il server non può mai inviare 100 continue a un client che non invia 100 continue. Ma alcuni server sì. IIS 5 invia erroneamente risposta 100-continua

Se il server riceve il corpo del client prima di inviare la risposta 100 continue, significa che il client ha deciso di iniziare a inviare dati, quindi il server non può più inviare 100 continue al client.
Il codice delle impostazioni .NET Expect Off Expect è il seguente:

RestSharp è strutturato come segue:







Precedente:La differenza tra utf8 e utf8mb4 in MySQL
Prossimo:SignalR aggiunge il supporto cross-domain per l'accesso remoto
 Padrone di casa| Pubblicato il 6-4-2025 21:52:04 |
Metodo di chiusura HttpClient


o

Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com