Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 12455|Atbildi: 1

HTTP pieprasījuma galvene Expect ir detalizēti izskaidrota

[Kopēt saiti]
Publicēts 2021-4-22 15:32:09 | | |
Dokumenta ievads:Hipersaites pieteikšanās ir redzama.

Zvanot uz otras puses saskarni, izmantojot čokurošanos, tika konstatēts, ka taimauta parādība ir ļoti nopietna, tāpēc es jautāju otras puses saskarnes personai, un otra puse teica, ka ir nepieciešams piebilst:


Pēc tā pievienošanas es atklāju, ka tas patiešām darbojas labi, tāpēc es izpētīju, kā to izmantot. Izmantojot curl for POST, ja "POST dati ir lielāki par 1024 baitiem", curl tieši neiniciēs POST pieprasījumu, bet tiks sadalīts 2 soļos:

Expect: 100-continue

1. Nosūtiet pieprasījumu, kas satur Expect:100-continue, lūdzot serverim pieņemt datus

2. Pēc 100 turpinājumu atbildes saņemšanas no servera, dati tiek nosūtīti uz serveri

Bet ar to ir vairākas problēmas:

Ne visi serveri pareizi atbildēs uz 100-continue, piemēram, lighttpd, kas atgriezīs 417 Expectation Failed.

izraisot kavēšanos,Kad klients nosūta pirmo Expect:100-continue, tam ir jāgaida, kamēr serveris atbildēs pirms pieprasījuma pamatteksta nosūtīšanas

Ja esat pārliecināts, ka otras puses serveris nenoraidīs POST pieprasījumus, kas pārsniedz 1024 baitus, varat izvairīties no šīs metodes izmantošanas un izvairīties no divām iepriekš minētajām blakusparādībām, un risinājums ir tas, kas minēts raksta sākumā.

Apmēram 100 turpina

Tās mērķis ir:

Tas ļauj klientam spriest, vai serveris ir gatavs saņemt pieprasījuma datus pirms to nosūtīšanas, un, ja serveris vēlas tos saņemt, klients faktiski nosūtīs datus.

Klientu uzvedība:

Klientam, kas nosūta 100 turpinājumu, nevajadzētu mūžīgi gaidīt atbildi no servera, un pēc kāda laika beigām klientam ir jānosūta entītija tieši.

Servera puses darbība:

Ja serveris saņem 100 turpināt pieprasījumu, tas atbildēs ar 100 turpināt vai nosūtīs kļūdas kodu. Serveris nekad nevar nosūtīt 100 turpināt klientam, kas nesūta 100 turpināt. Bet daži serveri to dara. IIS 5 nepareizi nosūta atbildi uz 100 turpinājumiem

Ja serveris saņem klienta ķermeni pirms 100 turpinājuma atbildes nosūtīšanas, tas nozīmē, ka klients ir nolēmis sākt sūtīt datus, tāpēc serveris vairs nevar nosūtīt klientam 100 turpināšanu.
.NET Expect Off Expect iestatījuma kods ir šāds:

RestSharp ir iestatīts šādi:







Iepriekšējo:Atšķirība starp utf8 un utf8mb4 MySQL
Nākamo:SignalR pievieno starpdomēnu atbalstu attālinātai piekļuvei
 Saimnieks| Publicēts 2025-4-6 21:52:04 |
HttpClient aizvēršanas metode


vai

Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com