Kui allalaadimine näib ootavat, eraldage kolm sündmust: vastuse päiste saabumine, keha baitide saabumine ja rakenduse võimalus tulemust kasutada või kuvada. Üks laadimisindikaator ei suuda tuvastada, milline neist hilineb.

Tavalised voogedastuse etapid võivad kattuda:

origin produces a chunk → proxy forwards bytes → client consumes them

Proxy saab edastamise ajal sobiva sisu vahemällu kirjutada. Vahemällu salvestamine ei nõua kogu faili ootamist. Squidi read_ahead_gap juhib hankimist, mis käib tarnimisest ees — see on teist tüüpi puhverdamine.

Vasturõhk võib ajutiselt peatada ülesvoolu lugemised, kui aeglane klient täidab väljundjärjekordi. Content-Length annab pikkuse ka ilma täieliku puhverdamiseta. HTTP/1.1 chunked-kodeerimine lubab järkjärgulist tarnimist, kuid ei saa lubada madalat latentsust, kui varasem komponent hoiab andmeid kinni.

Järgmisena uurige töötlemisetappe. Ümberkirjutamine või kontroll võib vajada osa või kogu keha. Pakkimine ja rakenduse raamimine võivad kasulikku väljundit edasi lükata. Kliendi poolel ootab täielikku baidimassiivi nõudev meetod enne tagastamist ja brauser võib baite vastu võtta enne, kui suudab neid kuvada.

Pärast edukat CONNECT-i edastab tavaline proxy teenusevoo, ilma et oleks vaja tunnelitud faili lõplikku pikkust. Enne puhvri või ajalimiidi seadete muutmist järgige ülaltoodud esimest puuduvat sündmust. Kui curl on vaatleja, muudab selle no-buffer valik kohalikku väljundetappi.

Seotud artiklid