Anslutningen öppnas. Förfrågningshuvudena går ut. Filen verkar inte röra sig. En förklaring är att klienten väntar på ett svar på Expect: 100-continue innan den skickar sin kropp.

Mekanismen låter en mottagare avvisa en förfrågan utifrån dess huvuden innan en potentiellt stor uppladdning skickas. Den vanliga lyckade sekvensen är:

request headers → 100 Continue → request body → final response

100 är informativ: den låter klienten fortsätta, men betyder inte att filen har lagrats eller att applikationsåtgärden har lyckats. En Git push som returnerar HTTP 417 är ett konkret fall av misslyckad förväntan.

Ta reda på vilket svar klienten fick

ObservationVad som bör undersökas
100 ContinueKlienten kan fortsätta med kroppen
Ett slutgiltigt avvisande före kroppenÅtgärden avvisades i huvudskedet
Inget förväntat mellansvarKlientens väntepolicy och hanteringen på den vägen

curl har en egen inställning för expect-continue-väntan. Om den libcurl-väntan löper ut utan det förväntade svaret skickas kroppen ändå; utgången är inte automatiskt en misslyckad hel överföring. Inställningen är skild från tiden som tillåts för hela överföringen. Att öka den senare kan lämna samma inledande paus oförklarad.

Identifiera också vilket HTTP-samtal som bär Expect. Vid vanlig CONNECT till ett HTTPS-mål ligger webbplatsens uppladdningsutbyte inuti TLS; den vidarebefordrande proxyn inspekterar inte bara det inre förväntanshuvudet. En väg med avlyssning eller klartext vidarebefordran är annorlunda.

Att ta bort förväntan kan vara ett medvetet kompatibilitetsval, men det innebär att klienten kan börja skicka en stor kropp innan den får veta om ett tidigt avvisande. Jämför det beteendet med det faktiska kravet. Beskriv inte en historisk lösning för en gammal proxy som en universell instruktion att ta bort huvudet från varje uppladdning.

Relaterade artiklar