డౌన్‌లోడ్ వేచి ఉన్నట్టు కనిపించినప్పుడు మూడు సంఘటనలను వేరు చేయండి: ప్రతిస్పందన హెడర్లు రావడం, బాడీ బైట్లు రావడం, మరియు అప్లికేషన్ ఫలితాన్ని ఉపయోగించగలగడం లేదా చూపగలగడం. స్పిన్నర్ ఒక్కటే ఏది ఆలస్యమవుతోందో గుర్తించలేదు.

సాధారణ స్ట్రీమింగ్ దశలు ఒకదానిపై ఒకటి రావచ్చు:

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

ప్రాక్సీ రిలే చేస్తున్నప్పుడు అనువైన కంటెంట్‌ను కాషేలో రాయగలదు. కాషింగ్‌కు మొత్తం ఫైల్ కోసం వేచి ఉండాల్సిన అవసరం లేదు. Squid యొక్క read_ahead_gap డెలివరీకి ముందు నడిచే రిట్రీవల్‌ను నియంత్రిస్తుంది, ఇది మరో రకమైన బఫరింగ్.

నెమ్మదిగా ఉన్న క్లయింట్ అవుట్‌పుట్ క్యూలను నింపినప్పుడు బ్యాక్‌ప్రెషర్ పైపైకి చదవడాన్ని తాత్కాలికంగా ఆపగలదు. Content-Length కూడా పూర్తి బఫరింగ్ లేకుండా పొడవును ఇస్తుంది. HTTP/1.1 chunked ఎన్‌కోడింగ్ క్రమంగా డెలివరీని అనుమతిస్తుంది, కానీ మునుపటి భాగం డేటాను పట్టి ఉంచితే తక్కువ జాప్యానికి హామీ ఇవ్వలేదు.

తర్వాత ప్రాసెసింగ్ దశలను పరిశీలించండి. తిరిగి రాయడం లేదా తనిఖీకి బాడీలో కొంత భాగం లేదా మొత్తం బాడీ అవసరం కావచ్చు. కంప్రెషన్ మరియు అప్లికేషన్ ఫ్రేమింగ్ ఉపయోగకరమైన అవుట్‌పుట్‌ను ఆలస్యం చేయవచ్చు. క్లయింట్‌లో పూర్తి బైట్ శ్రేణి కోసం వేచే పద్ధతి ఆలస్యంగా తిరిగి వస్తుంది, బ్రౌజర్ చూపించే ముందే బైట్లను స్వీకరించవచ్చు.

విజయవంతమైన CONNECT తర్వాత సాధారణ ప్రాక్సీ టన్నెల్ చేసిన ఫైల్ యొక్క తుది పొడవు తెలియకుండానే సేవా స్ట్రీమ్‌ను రిలే చేస్తుంది. బఫర్ లేదా టైమౌట్ సెట్టింగ్‌లను మార్చే ముందు పైన ఉన్న మొదటి తప్పిపోయిన సంఘటనను అనుసరించండి. curl పరిశీలకుడు అయినప్పుడు దాని no-buffer ఎంపిక స్థానిక అవుట్‌పుట్ దశను మారుస్తుంది.

సంబంధిత వ్యాసాలు