Veza se otvara. Zaglavlja zahtjeva odlaze. Čini se da se datoteka ne pomiče. Jedno objašnjenje je da klijent čeka odgovor na Expect: 100-continue prije slanja tijela.

Mehanizam omogućuje primatelju da odbije zahtjev na osnovu njegovih zaglavlja prije nego što se pošalje potencijalno veliko otpremanje. Uobičajeni uspješni slijed je:

request headers → 100 Continue → request body → final response

100 je informativan: omogućuje klijentu da nastavi, ali ne znači da je datoteka pohranjena ili da je operacija aplikacije uspjela. Git push koji vraća HTTP 417 jedan je konkretan slučaj neispunjenog očekivanja.

Utvrdite koji je odgovor klijent primio

ZapažanjeŠto istražiti
100 ContinueKlijent može nastaviti s tijelom
Konačno odbijanje prije tijelaOperacija je odbijena u fazi zaglavlja
Nema očekivanog privremenog odgovoraKlijentova politika čekanja i postupanje na tom putu

curl ima posebnu postavku čekanja expect-continue. Ako to libcurl čekanje istekne bez očekivanog odgovora, tijelo se ipak šalje; istek samo po sebi nije neuspješan cijeli prijenos. Postavka je odvojena od vremena dopuštenog za cijeli prijenos. Povećanje potonjeg može ostaviti istu početnu pauzu neobjašnjenom.

Također utvrdite koji HTTP razgovor nosi Expect. Uz obični CONNECT prema HTTPS odredištu, razmjena otpremanja web-mjesta nalazi se unutar TLS-a; posrednik za prosljeđivanje ne pregledava jednostavno unutarnje zaglavlje očekivanja. Put presretanja ili prosljeđivanja čistim tekstom je drukčiji.

Uklanjanje očekivanja može biti svjestan izbor kompatibilnosti, ali znači da klijent može početi slati veliko tijelo prije nego sazna za rano odbijanje. Usporedite to ponašanje sa stvarnim zahtjevom. Ne opisujte povijesno rješenje za stari posrednik kao univerzalnu uputu za uklanjanje zaglavlja iz svakog otpremanja.

Povezani članci