Эгер PDF же электрондук таблица деп эсептелген файл HTTP/1.1 200 OK менен башталса, жүктөөчү файлдын ордуна чийки жоопту сактаган. Бул схематикалык жоопто төрт байт гана мазмун бар:

HTTP/1.1 200 OK
Transfer-Encoding: chunked

4
DATA
0

Файл — DATA. Статус сабы, аталыштар, өлчөм белгиси жана аяктоочу түзүлүш HTTPге таандык. Туруктуу байт санын алып салуу кооптуу, анткени аталыштардын узундугу ар башка. Биринчи бош саптан кийинкинин баарын көчүрүү бөлүк алкагын калтырат, ал эми маалыматтык жооптор акыркы жооптон мурун келиши мүмкүн.

Кадимки жүктөө үчүн чийки сокеттен файлга көчүрүүнү HTTP кардарынын жооп денесинин интерфейси менен алмаштырыңыз. Анын проксиин конфигурациялаңыз, акыркы статусту текшериңиз жана денени убактылуу чыгууга агылтыңыз. Кардар билдирүү алкагын башкарат: узундук, бөлүк жана байланыш менен чектелген денелер ар башка талдоону талап кылат.

Мазмунду коддоо — дагы бир катмар. Кардардын документтелген жүрүм-турумуна таянып, сизге декоддолгон файл байттары керекпи же ачык суралган чийки мазмун керекпи, ошону чечиңиз. Кысылган байттар автоматтык түрдө прокси бузулушу эмес.

Эгер колдонмо сокет деңгээлиндеги кодду сактоого милдеттүү болсо, ал бардык ошол талдоо эрежелерин, ошондой эле окуу жана жазуу иштетүүнү өзүнө алат. Окуу чындап кайтарган байт санын гана жазыңыз, буфердин сыйымдуулугун эмес, жана жарым-жартылай жазууларды иштетиңиз. Болбосо эскирген буфер мазмуну туура алынган денени да буза алат.

HTTPS CONNECT жообун сыйруудан көбүрөөк талап кылат: туннель ийгиликтүү орнотулгандан кийин багыттоонун TLSин орнотуп, анан ички HTTP жообун талдаңыз. Проксинин аталыштарынан кийин келген шифрленген байттар жүктөлүүчү файл эмес.

Ийгиликсиз же толук эмес чыгууну убактылуу ат астында калтырыңыз. Аны өткөрүү жана файл текшерүүлөрү ийгиликтүү болгондон кийин гана жарыялаңыз; бош эмес файл толук жүктөөнү далилдебейт.

Тектеш макалалар