HTTP yükləmə fasilələri və Expect: 100-continue
Expect: 100-continue mübadiləsini tanıyın və onun qısa qərar nöqtəsini məlumat ötürülərkən dayanan yükləmədən ayırın.
Bağlantı açılır. Sorğu başlıqları çıxır. Fayl yerindən tərpənmir. Bir izah odur ki, müştəri gövdəsini göndərməzdən əvvəl Expect: 100-continue üçün cavab gözləyir.
Mexanizm alıcıya böyük ola biləcək yükləmə göndərilməzdən əvvəl sorğunu başlıqlarına əsasən rədd etməyə imkan verir. Adi uğurlu ardıcıllıq belədir:
request headers → 100 Continue → request body → final response100 məlumat xarakterlidir: müştəriyə davam etməyə icazə verir, amma faylın saxlandığını və ya tətbiq əməliyyatının uğurlu olduğunu bildirmir. HTTP 417 qaytaran Git push gözlənti uğursuzluğunun bir konkret halıdır.
Müştərinin hansı cavabı aldığını müəyyən edin
| Müşahidə | Araşdırılmalı məna |
|---|---|
| 100 Continue | Müştəri gövdə ilə davam edə bilər |
| Gövdədən əvvəl son rədd | Əməliyyat başlıq mərhələsində rədd edildi |
| Gözlənilən aralıq cavab yoxdur | Müştərinin gözləmə siyasəti və həmin yolda davranış |
curl expect-continue üçün ayrıca gözləmə parametri təqdim edir. Əgər həmin libcurl gözləməsi gözlənilən cavab olmadan bitirsə, gövdəni yenə də göndərir; bitmə avtomatik olaraq bütün ötürmənin uğursuzluğu deyil. Parametr tam ötürmə üçün verilən vaxtdan ayrıdır. Sonuncunu artırmaq eyni ilkin fasiləni izahsız qoya bilər.
Expect daşıyan HTTP söhbətinin hansı olduğunu da müəyyən edin. HTTPS hədəfinə adi CONNECT ilə veb saytın yükləmə mübadiləsi TLS içindədir; forvard proxy onun daxili gözlənti başlığını sadəcə yoxlamır. Müdaxilə və ya açıq mətn ötürmə yolu fərqlidir.
Gözləntini silmək qəsdən uyğunluq seçimi ola bilər, amma bu o deməkdir ki, müştəri erkən rədd barədə öyrənməzdən əvvəl böyük gövdə göndərməyə başlaya bilər. Bu davranışı faktiki tələblə müqayisə edin. Köhnə proxy üçün tarixi həlli hər yükləmədən başlığı çıxarmaq kimi universal göstəriş kimi təsvir etməyin.