Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 12455|Svare: 1

HTTP-forespørselshode Expect forklares i detalj

[Kopier lenke]
Publisert 22.04.2021 15:32:09 | | |
Dokumentintroduksjon:Innloggingen med hyperkoblingen er synlig.

Da jeg kalte den andre partens grensesnitt gjennom curl, ble det funnet at timeout-fenomenet var veldig alvorlig, så jeg spurte den andre partens grensesnittperson, og den andre parten sa at det var nødvendig å legge til:


Etter å ha lagt den til, fant jeg ut at den fungerte veldig bra, så jeg undersøkte hvordan jeg kunne bruke den. Når man bruker curl for POST, når "POST-data er større enn 1024 byte", vil ikke curl direkte initiere en POST-forespørsel, men deles inn i to trinn:

Expect: 100-continue

1. Send en forespørsel som inneholder Expect:100-continue, og be serveren akseptere dataene

2. Etter å ha mottatt 100-fortsettelsessvaret returnert av serveren, sendes dataene POSTed til serveren

Men det er flere problemer med dette:

Ikke alle servere vil svare korrekt på 100-continue, f.eks. lighttpd, som vil returnere 417 Expectation Failed.

forårsaker forsinkelse,Når klienten sender den første Expect:100-continue, må den vente på at serveren svarer før den sender forespørselskroppen

Hvis du er sikker på at den andre partens server ikke vil avvise POST-forespørsler på mer enn 1024 byte, kan du unngå denne metoden og unngå de to bivirkningene nevnt ovenfor, og løsningen er den som nevnes i begynnelsen av artikkelen.

Omtrent 100 fortsetter

Hensikten med dette er å:

Det lar klienten vurdere om serveren er villig til å motta forespørselsdataene før de sendes, og hvis serveren er villig til å motta dem, vil klienten faktisk sende dataene.

Klientatferd:

En klient som sender 100 fortsettelser skal ikke vente evig på svar fra serveren, og etter en periode bør klienten sende enheten direkte.

Serverside-oppførsel:

Hvis serveren mottar en 100 continue-forespørsel, vil den svare med 100 continue eller sende en feilkode. Serveren kan aldri sende 100 continues til en klient som ikke sender 100 continue. Men noen servere gjør det. IIS 5 sender feil 100-fortsettelsesrespons

Hvis serveren mottar klientens kropp før den sender 100 continue-svaret, betyr det at klienten har bestemt seg for å begynne å sende data, så serveren kan ikke lenger sende 100 continue til klienten.
.NET Expect Off Expect-innstillingskoden er som følger:

RestSharp er satt opp som følger:







Foregående:Forskjellen mellom utf8 og utf8mb4 i MySQL
Neste:SignalR legger til tverrdomene-støtte for fjernaksess
 Vert| Publisert 6.04.2025 kl. 21:52:04 |
HttpClient lukkingsmetode


eller

Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com