Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 12455|Válasz: 1

HTTP kérés fejlécéje Expect részletesen el van magyarázva

[Linket másol]
Közzétéve: 2021-4-22 15:32:09 | | |
Dokumentum bevezetése:A hiperlink bejelentkezés látható.

Amikor a másik fél felületét curl-en hívtuk, kiderült, hogy az időkorlát jelensége nagyon súlyos, ezért megkérdeztem a másik fél interfészének személyét, aki azt mondta, hogy szükséges hozzátenni:


Miután hozzáadtam, rájöttem, hogy nagyon jól működik, ezért utánanéztem, hogyan kell használni. A curl használata esetén a POST-hoz, ha "POST adat nagyobb, mint 1024 bájt", a curl nem indít közvetlenül POST kérést, hanem két lépésre oszlik:

Expect: 100-continue

1. Küldj egy kérést, amely tartalmaz egy Expect:100-continue-t, és kérd meg a szervert, hogy fogadja el az adatokat

2. Miután megkapta a szerver által visszaküldött 100-as válaszot, az adatokat POST-elé a szerverre

De ezzel több probléma is van:

Nem minden szerver fog helyesen válaszolni a 100-folytatásra, például lighttpd, amely 417 Expectation Failed értéket ad vissza.

késést okozva,Amikor az ügyfél elküldi az első Expect:100-continue-t, várnia kell, hogy a szerver válaszoljon, mielőtt elküldi a kérvény testét

Ha biztos vagy benne, hogy a másik fél szervere nem utasítja el a 1024 bájtnál nagyobb POST kéréseket, elkerülheted ezt a módszert, és elkerülheted a fent említett két mellékhatást, és a megoldás az, amit a cikk elején említettek.

Körülbelül 100 folytatás

Ennek célja:

Ez lehetővé teszi a kliens számára, hogy eldöntse, hajlandó-e a szerver megfogadni a kérés adatait, mielőtt elküldené, és ha a szerver hajlandó elfogadni, akkor az ügyfél ténylegesen elküldi az adatokat.

Ügyfél viselkedése:

Egy kliensnek, amely 100 folytatást küld, nem várhat örökké a szerver válaszára, és egy időkorlát után az ügyfélnek közvetlenül el kell küldenie az entitást.

Szerveroldali viselkedés:

Ha a szerver 100 folytatási kérést kap, akkor 100 folytatást küld vagy hibakódot küld. A szerver soha nem tud 100 folytatást küldeni egy olyan kliensnek, amely nem küld 100 folytatást. De néhány szerver igen. IIS 5 hibásan küld 100-as folytatási választ

Ha a szerver megkapja az ügyfél testét a 100 folytatás előtt, az azt jelenti, hogy az ügyfél úgy döntött, hogy elkezdi az adatokat küldeni, így a szerver már nem tud 100 folytatást küldeni a kliensnek.
A .NET Expect Off Expect beállítási kód a következő:

A RestSharp a következőképpen van felépítve:







Előző:A különbség az utf8 és utf8mb4 között a MySQL-ben
Következő:A SignalR hozzáférés esetén a tartományok közötti támogatását biztosítja
 Háziúr| Közzétéve 2025-4-6-nál 21:52:04 |
HttpClient zárási módszer


vagy

Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com