Pause di caricamento HTTP ed Expect: 100-continue
Riconoscere lo scambio Expect: 100-continue e distinguere il suo breve punto decisionale da un caricamento bloccato durante il trasferimento dei dati.
La connessione si apre. Le intestazioni della richiesta partono. Il file sembra non muoversi. Una spiegazione è che il client attende una risposta a Expect: 100-continue prima di inviare il corpo.
Il meccanismo consente al destinatario di rifiutare una richiesta in base alle sue intestazioni prima che venga inviato un caricamento potenzialmente grande. La sequenza riuscita abituale è:
request headers → 100 Continue → request body → final response100 è informativo: consente al client di procedere, ma non significa che il file sia stato memorizzato o che l'operazione dell'applicazione sia riuscita. Un Git push che restituisce HTTP 417 è un caso concreto di aspettativa fallita.
Scoprite quale risposta ha ricevuto il client
| Osservazione | Significato da esaminare |
|---|---|
| 100 Continue | Il client può procedere con il corpo |
| Un rifiuto definitivo prima del corpo | L'operazione è stata rifiutata nella fase delle intestazioni |
| Nessuna risposta intermedia attesa | La politica di attesa del client e la gestione su quel percorso |
curl offre un'impostazione di attesa dedicata per expect-continue. Se tale attesa di libcurl scade senza la risposta attesa, invia comunque il corpo; la scadenza non è automaticamente un fallimento dell'intero trasferimento. L'impostazione è separata dal tempo consentito per il trasferimento completo. Aumentare quest'ultimo può lasciare la stessa pausa iniziale inspiegata.
Identificate anche quale conversazione HTTP trasporta Expect. Con un normale CONNECT verso una destinazione HTTPS, lo scambio di caricamento del sito avviene all'interno di TLS; il proxy inoltrante non ispeziona semplicemente la sua intestazione di aspettativa interna. Un percorso di intercettazione o di inoltro in chiaro è diverso.
Rimuovere l'aspettativa può essere una scelta di compatibilità deliberata, ma significa che il client può iniziare a inviare un corpo grande prima di apprendere un rifiuto precoce. Confrontate questo comportamento con il requisito reale. Non descrivete una soluzione storica per un vecchio proxy come un'istruzione universale a togliere l'intestazione da ogni caricamento.