Koneksi terbuka. Header permintaan pergi. File tampak tidak bergerak. Salah satu penjelasan adalah klien menunggu respons terhadap Expect: 100-continue sebelum mengirim badannya.

Mekanisme ini memungkinkan penerima menolak permintaan berdasarkan headernya sebelum unggahan yang mungkin besar dikirim. Urutan berhasil yang biasa adalah:

request headers → 100 Continue → request body → final response

100 bersifat informatif: ini memungkinkan klien melanjutkan, tetapi tidak berarti file telah disimpan atau operasi aplikasi berhasil. Git push yang mengembalikan HTTP 417 adalah satu kasus konkret kegagalan ekspektasi.

Cari tahu respons mana yang diterima klien

PengamatanMakna yang perlu diselidiki
100 ContinueKlien dapat melanjutkan dengan badan
Penolakan akhir sebelum badanOperasi ditolak pada tahap header
Tidak ada respons sementara yang diharapkanKebijakan tunggu klien dan penanganan pada jalur itu

curl menyediakan pengaturan tunggu khusus untuk expect-continue. Jika tunggu libcurl itu berakhir tanpa respons yang diharapkan, ia tetap mengirim badan; berakhirnya bukan berarti seluruh transfer otomatis gagal. Pengaturan ini terpisah dari waktu yang diizinkan untuk transfer lengkap. Menaikkan yang terakhir dapat membuat jeda awal yang sama tetap tidak dijelaskan.

Identifikasi juga percakapan HTTP mana yang membawa Expect. Dengan CONNECT biasa ke tujuan HTTPS, pertukaran unggahan situs web berada di dalam TLS; proxy penerus tidak begitu saja memeriksa header ekspektasi dalamnya. Jalur penyadapan atau penerusan teks terbuka berbeda.

Menghapus ekspektasi bisa menjadi pilihan kompatibilitas yang disengaja, tetapi itu berarti klien dapat mulai mengirim badan besar sebelum mengetahui penolakan awal. Bandingkan perilaku itu dengan kebutuhan sebenarnya. Jangan gambarkan solusi historis untuk proxy lama sebagai instruksi universal untuk menghapus header dari setiap unggahan.

Artikel terkait