Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 12455|Odpověď: 1

HTTP request header Expect je podrobně vysvětlen

[Kopírovat odkaz]
Zveřejněno 2021-4-22 15:32:09 | | |
Úvod do dokumentu:Přihlášení k hypertextovému odkazu je viditelné.

Když jsem volal rozhraní druhé strany přes curl, zjistilo se, že fenomén timeoutu je velmi vážný, takže jsem se zeptal uživatele rozhraní druhé strany a druhá strana řekla, že je nutné dodát:


Po přidání jsem zjistil, že to opravdu dobře funguje, tak jsem si začal zjišťovat, jak ho používat. Při použití curlu pro POST, když "POST data jsou větší než 1024 bajtů", curl přímo nezahajuje POST požadavek, ale bude rozdělen do 2 kroků:

Expect: 100-continue

1. Odeslat požadavek obsahující Expect:100-continue, žádající server o přijetí dat

2. Po obdržení odpovědi 100-pokračování vrácené serverem jsou data POSTována na server

Ale s tím je několik problémů:

Ne všechny servery správně odpoví na 100-continue, např. lighttpd, který vrátí 417 Expectation Failed.

způsobující zpoždění,Když klient odešle první Expect:100-continue, musí počkat, až server odpoví, než odešle tělo požadavku

Pokud si jste jisti, že server druhé strany neodmítne POST požadavky větší než 1024 bajtů, můžete se této metodě vyhnout a vyhnout se dvěma výše zmíněným vedlejším účinkům, a řešením je to zmíněné na začátku článku.

Přibližně 100 pokračuje

Účelem tohoto je:

Umožňuje klientovi posoudit, zda je server ochoten data požadavku přijmout, než je odešle, a pokud je server ochoten je přijmout, klient data skutečně odešle.

Chování klienta:

Klient, který odešle 100 pokračovat, by neměl čekat věčně na odpověď ze serveru, a po uplynutí doby by měl klient poslat entitu přímo.

Chování na straně serveru:

Pokud server obdrží požadavek 100 pokračovat, odpoví 100 pokračováním nebo pošle chybový kód. Server nikdy nemůže poslat 100 pokračování klientovi, který neodešle 100 pokračování. Ale některé servery ano. IIS 5 nesprávně odesílá odpověď 100-pokračování

Pokud server obdrží tělo klienta před odesláním odpovědi 100 pokračovat, znamená to, že klient se rozhodl začít odesílat data, takže server již nemůže posílat 100 pokračování klientovi.
Kód nastavení .NET Expect Off Expect je následující:

RestSharp je nastaven následovně:







Předchozí:Rozdíl mezi utf8 a utf8mb4 v MySQL
Další:SignalR přidává podporu vzdáleného přístupu napříč doménami
 Pronajímatel| Zveřejněno 6. 4. 2025 21:52:04 |
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com