Yükləməni hissələrlə oxumaq chunked HTTP tələb etmir
Yükləmə irəli proxy vasitəsilə fərqli davrandıqda məhdud tətbiq oxunuşlarını HTTP/1.1 mesaj çərçivəsindən ayırın.
Xeyr. Müştəri böyük faylı kiçik buferlərdə oxuya və məlum Content-Length ilə göndərə bilər. Məhdud oxunuşlar yaddaş istifadəsini idarə edir; HTTP çərçivəsi isə qəbul edənə sorğu gövdəsinin harada bitdiyini bildirir.
HTTP kitabxanasının bayt uzunluğunu bildiyi sabit fayl, naməlum həcmdə məlumat istehsal edən generator'dan fərqlənir. Hər iki mənbə üçün kitabxananın dəstəklədiyi body interfeysindən istifadə edin. Yalnız uzunluq vermək üçün bütün faylı sətirdə yığmaq lazım deyil.
HTTP/1.1 üçün protokolun qaydalarına uyğun olaraq həqiqətən göndərilən çərçivəni yoxlayın: Content-Length və ya chunked ötürmə kodlaşdırması. Chunked kodlaşdırma fayl məzmunundan kənar ölçü işarələri əlavə edir. Ziddiyyətli çərçivə sahələrini birləşdirməyin və ya proxy-ni yükləməni qəbul etməyə inandırmaq üçün uzunluq təxmin etməyin.
Proxy vasitəsilə yükləmə uğursuz olarsa, HTTP versiyasını, gövdə mənbəyini və ilk rəddi qeyd edin. 411 cavabı gövdənin ortasında bağlanan bağlantıdan fərqli araşdırma təklif edir. Əgər əvəzində autentifikasiya təkrar cəhdləri uğursuz olarsa, yükləmə gövdəsinin təkrar oynadıla biləcəyini yoxlayın. Tətbiqin read-buffer ölçüsünü dəyişmək sorğunun çərçivəsini olduğu kimi buraxa bilər.
Marşrut bu müşahidə üçün vacibdir. Açıq mətn ötürülməsi yükləmənin HTTP çərçivəsini proxy-yə göstərir; adi end-to-end HTTPS onu tunnelin içində saxlayır. HTTP/2 öz çərçivəsindən istifadə edir. Buna görə tarixi Squid məhdudiyyətləri müəyyən köhnə uğursuzluqları izah edir, indiki hər proxy stream edilmiş yükləmələri rədd edir qaydası deyil.