Yuklab olingan fayl HTTP holat qatori bilan boshlanganda
Proksi soketidan olingan har bir baytni chiqish fayliga ko'chirish o'rniga HTTP javobining ramkalanishini yuklab olingan fayldan tashqarida saqlang.
Agar PDF yoki elektron jadval deb hisoblangan fayl HTTP/1.1 200 OK bilan boshlansa, yuklab oluvchi fayl o'rniga xom javobni saqlagan. Bu sxematik javobda faqat to'rt bayt mazmun bor:
HTTP/1.1 200 OK
Transfer-Encoding: chunked
4
DATA
0
Fayl — DATA. Holat qatori, sarlavhalar, o'lcham belgisi va tugash tuzilmasi HTTPga tegishli. Sarlavhalar uzunligi turlicha bo'lgani uchun belgilangan bayt sonini olib tashlash xavfsiz emas. Birinchi bo'sh qatordan keyingi hammasini ko'chirsangiz ham bo'lak ramkalanishi qoladi, informatsion javoblar oxirgi javobdan oldin kelishi mumkin.
Oddiy yuklab olish uchun xom soketdan faylga ko'chirishni HTTP mijozi javob tanasi interfeysi bilan almashtiring. Uning proksisini sozlang, yakuniy holatni tekshiring va tanani vaqtinchalik chiqishga oqim bilan yuboring. Mijoz xabar ramkalanishini boshqaradi: uzunlik bilan chegaralangan, bo'lakli (chunked) va ulanish bilan chegaralangan tanalar turlicha tahlil talab qiladi.
Mazmun kodlash yana bir qatlam. Mijozning hujjatlashtirilgan xatti-harakatidan foydalanib, sizga dekodlangan fayl baytlari kerakmi yoki aniq so'ralgan xom mazmun kerakmi — shuni hal qiling. Siqilgan baytlar avtomatik ravishda proksi buzilishi emas.
Agar dastur soket darajasidagi kodni saqlab qolishi shart bo'lsa, u barcha tahlil qoidalari hamda o'qish va yozishni boshqarish uchun javobgar. Bufer sig'imini emas, o'qish haqiqatda qaytargan baytlar sonini yozing va qismiy yozishlarni boshqaring. Aks holda eskirgan bufer mazmuni to'g'ri ajratilgan tanani ham buzishi mumkin.
HTTPS CONNECT javobini olib tashlashdan ko'proq narsani talab qiladi: tunnel muvaffaqiyatli o'rnatilgach, manzil TLSini o'rnating va keyin ichki HTTP javobini tahlil qiling. Proksi sarlavhalaridan keyingi shifrlangan baytlar yuklab olinadigan fayl emas.
Muvaffaqiyatsiz yoki tugallanmagan chiqishni vaqtinchalik nom ostida qoldiring. Uni faqat uzatish va fayl tekshiruvlari muvaffaqiyatli bo'lgandan keyin e'lon qiling; bo'sh bo'lmagan fayl to'liq yuklab olishni isbotlamaydi.