Conexiunea se deschide. Antetele cererii pleacă. Fișierul pare să nu se miște. O explicație este că clientul așteaptă un răspuns la Expect: 100-continue înainte de a-și trimite corpul.

Mecanismul permite unui destinatar să respingă o cerere pe baza antetelor înainte de a fi trimisă o încărcare potențial mare. Secvența obișnuită de succes este:

request headers → 100 Continue → request body → final response

100 este informativ: îi permite clientului să continue, dar nu înseamnă că fișierul a fost stocat sau că operația aplicației a reușit. Un Git push care returnează HTTP 417 este un caz concret de expectativă nerespectată.

Stabiliți ce răspuns a primit clientul

ObservațieCe trebuie investigat
100 ContinueClientul poate continua cu corpul
O respingere finală înainte de corpOperația a fost refuzată în etapa antetelor
Niciun răspuns intermediar așteptatPolitica de așteptare a clientului și tratarea pe acea cale

curl expune o setare dedicată de așteptare expect-continue. Dacă acea așteptare libcurl expiră fără răspunsul așteptat, corpul este trimis oricum; expirarea nu este automat un transfer întreg eșuat. Setarea este separată de timpul permis pentru transferul complet. Creșterea acestuia din urmă poate lăsa aceeași pauză inițială neexplicată.

Identificați și ce conversație HTTP transportă Expect. Cu un CONNECT obișnuit către o destinație HTTPS, schimbul de încărcare al site-ului este în interiorul TLS; proxy-ul de forward nu inspectează pur și simplu antetul intern de expectativă. O cale de interceptare sau de forwardare în text simplu este diferită.

Eliminarea expectativei poate fi o alegere deliberată de compatibilitate, dar înseamnă că clientul poate începe să trimită un corp mare înainte de a afla de o respingere timpurie. Comparați acel comportament cu cerința reală. Nu descrieți o soluție istorică pentru un proxy vechi ca instrucțiune universală de a elimina antetul din fiecare încărcare.

Articole similare