VPN పేజీ మధ్యలో కట్ అయింది: నేపథ్య అభ్యర్థనలు ఇంకా బయటకు వెళ్తున్నాయా?
తెరిచి ఉంచిన పేజీ టన్నెల్ చనిపోయిన తర్వాత కూడా పోలింగ్, తిరిగి కనెక్ట్ మరియు సింక్ను కొనసాగిస్తుంది. ఏ ప్రయత్నాలు ఇంకా బయటకు వెళ్తున్నాయి మరియు దాన్ని ఎలా నిరూపించాలో చూడండి.
ట్యాబ్ ఇంకా టన్నెల్ చనిపోవడానికి ముందు ఉన్న డాష్బోర్డ్ను చూపిస్తోంది. స్థితి సంఖ్యలు గడ్డకట్టుకుపోతాయి, చిన్న స్పిన్నర్ తిరుగుతూనే ఉంటుంది, మరియు చిరునామా పట్టీ ఇంకా ఒక గంట క్రితం తెరిచిన యాప్ను మోస్తోంది. కట్ అయిన తర్వాత మీరు ఏదీ తాకలేదు, అయినా పేజీ ఇంకా దాని స్వంత షెడ్యూల్ ప్రకారం దాని సర్వర్ను చేరుకోవడానికి ప్రయత్నిస్తూ ఉండవచ్చు. ప్రజలు తప్పించుకునే భాగం ఇదే: కేవలం కనిపించే పేజీ మరియు ఇంకా అభ్యర్థనలు పంపుతున్న పేజీ బయటినుంచి ఒకేలా కనిపిస్తాయి, మరియు వాటిలో ఒకటి మాత్రమే నెట్వర్క్ లాగ్లో కనిపిస్తుంది.
ఒక పేజీ మీరు లేకుండా ప్రారంభించే పని
నాలుగు యంత్రాంగాలు లోడ్ అయిన పత్రాన్ని బిజీగా ఉంచుతాయి. పునరావృత టైమర్ ప్రతి కొన్ని సెకన్లకు స్థితి కాల్ను మళ్లీ అమలు చేయగలదు. మీరు తిరిగి వచ్చిన తర్వాత ట్యాబ్ మళ్లీ కనిపించినప్పుడు fetch రగులుకోవచ్చు. WebSocket లేదా సర్వర్ పంపే ఈవెంట్లపై నిర్మించిన ప్రత్యక్ష ఛానెల్ దాని స్వంత బ్యాక్ఆఫ్ షెడ్యూల్ ప్రకారం తిరిగి కనెక్ట్ అవ్వడానికి ప్రయత్నించవచ్చు. సైట్ నమోదు చేసిన సేవా కార్మికుడు మీ ముందు ట్యాబ్ లేకపోయినా క్యూలో ఉన్న సింక్ కోసం మేల్కొనవచ్చు.
వాటిలో ఏదీ క్లిక్ అవసరం లేదు, ఏదీ పత్రాన్ని మళ్లీ లోడ్ చేయదు. చిరునామా పట్టీ, స్క్రోల్ స్థానం మరియు చూపించిన విలువలు అన్నీ ఉన్నచోటే ఉంటాయి. మారేది నెట్వర్క్ వైపు మాత్రమే: ప్రతి కొత్త ప్రయత్నం అది ప్రారంభమయ్యే క్షణంలో తీసుకున్న కొత్త నిర్ణయం.
ఈ భేదం ముఖ్యం ఎందుకంటే కనిపించే పేజీ స్థానికంగా నిల్వ చేయబడుతుంది. ఇప్పటికే గీసిన పిక్సెల్లు తదుపరి అభ్యర్థన విజయవంతమైందా అనే దాని గురించి ఏమీ చెప్పవు. స్పిన్నర్తో గడ్డకట్టిన చార్ట్ ఇప్పుడు అభ్యర్థనలు విఫలమవుతున్న పేజీ సాధారణ రూపం. స్క్రీన్ చదవడం సర్వర్ కొన్ని నిమిషాల క్రితం ఏమి చెప్పిందో చెబుతుంది, బ్రౌజర్ ఇప్పుడు ఏమి చేస్తోందో కాదు.
గత పేజీ లోడ్ ఒక మార్గాన్ని ఎందుకు ఉంచుకోదు
పేజీ లోడ్లో ఏదీ పత్రాన్ని టన్నెల్తో కట్టివేయదు. రూటింగ్ ప్రతి ప్యాకెట్కు, పంపే సమయంలో, ప్యాకెట్ బయటకు వెళ్లేటప్పుడు ఉన్న పట్టిక నుండి నిర్ణయించబడుతుంది. టన్నెల్ ఇంటర్ఫేస్ అదృశ్యమైనప్పుడు, ఆ శోధన ఇకపై టన్నెల్ మార్గంతో సరిపోలదు. అది భౌతిక అడాప్టర్పై పడుతుంది లేదా ఏమీ కనుగొనదు, క్లయింట్ వెనుక ఏమి వదిలిందనే దానిపై ఆధారపడి.
పునరావృత కాల్బ్యాక్లు సాధారణ షెడ్యూల్ చేసిన పనులు. HTML ప్రమాణం యొక్క టైమర్ విభాగం అవి ఎలా క్యూలో చేరతాయో వివరిస్తుంది మరియు విరామాన్ని ఖచ్చితమైన లయకు హామీగా కాకుండా కనీస ఆలస్యంగా పరిగణిస్తుంది, కాబట్టి నేపథ్య ట్యాబ్ దాని కోడ్ అడిగే దానికంటే చాలా తక్కువసార్లు పోలింగ్ చేయగలదు. తక్కువ ప్రయత్నాలు ఏ ప్రయత్నమూ లేకపోవడంతో సమానం కాదు, ట్యాబ్ను తిరిగి ముందుకు తీసుకురావడం వాటి పేలుడుకు సాధారణ క్షణం.
వైఫల్య విధానం ఎక్కడ దిగుతుంది
క్లయింట్ బ్లాక్ పేజీ తీసుకున్నప్పుడు కాదు, కనెక్షన్ ప్రయత్నించినప్పుడు మూల్యాంకనం చేయబడుతుంది. సాధారణ ప్రాప్యత ఇంకా అనుమతించబడితే, తిరిగి ప్రయత్నం భౌతిక లింక్ ద్వారా బహిరంగంగా బయటకు వెళ్లవచ్చు. విధానం ఆ ట్రాఫిక్ను టన్నెల్ తిరిగి వచ్చే వరకు నిలిపి ఉంచితే, ప్రయత్నం కనెక్ట్ అయ్యే క్షణంలోనే విఫలమవుతుంది మరియు పేజీ కొన్ని సెకన్ల తర్వాత మళ్లీ ప్రయత్నించగల దోషాన్ని చూపిస్తుంది.
వాటిలో ఏది పొందుతారో రెండు వివరాలు నిర్ణయిస్తాయి. మొదటిది క్లయింట్ మద్దతిచ్చే అమలు పరిధి: మొత్తం పరికరానికి బ్లాక్, టన్నెల్ అడాప్టర్కు పరిమితమైన బ్లాక్, లేదా మినహాయింపులతో కూడిన నియమాల సమాహారం. రెండవది, గమ్యం మీరు ముందుగా స్థానిక ప్రింటర్, బంధిత పోర్టల్ లేదా స్ట్రీమింగ్ సేవ కోసం జోడించిన మినహాయింపులో ఉంటుందా అనేది.
అప్లికేషన్ స్థాయి ఎన్క్రిప్షన్ ఇందులో ఏదీ మార్చదు. HTTPS బ్రౌజర్ మరియు సర్వర్ మధ్య బైట్లను రక్షిస్తుంది; వాటిని ఏ ఇంటర్ఫేస్ మోస్తుందో ఏమీ చెప్పదు. పేజీ పూర్తిగా ఎన్క్రిప్ట్ చేయబడి ఉన్నా తప్పు మార్గం ద్వారా బయటకు వెళ్లవచ్చు, మరియు సన్నని బ్లాక్ అనుమతించేది సరిగ్గా అదే.
విసిరేయగల పేజీతో నియంత్రిత తనిఖీ
మీరు నియంత్రించే హోస్ట్ మరియు దానిని పిలవడం తప్ప మరేమీ చేయని పేజీని ఉపయోగించండి, తద్వారా నిజమైన డేటా ఆటలో ఉండదు. టెర్మినల్ నుండి, కట్ అవ్వడానికి ముందు మరియు తర్వాత మార్గం యొక్క నమూనా తీసుకోండి:
curl -sS --max-time 5 -o /dev/null -w '%{http_code} %{remote_ip}\n' https://probe.example.net/pingటన్నెల్ పైన ఉన్నప్పుడు దాన్ని నడపండి, ఆపై టన్నెల్ను క్రిందకు దించి మళ్లీ నడపండి. టన్నెల్ క్రింద ఉన్నప్పుడు పబ్లిక్ చిరునామా నుండి వచ్చిన ప్రతిస్పందన నేరుగా మార్గం తెరిచి ఉందని చెబుతుంది. సమయం ముగియడం లేదా తిరస్కరించబడిన కనెక్షన్ విధానం నిలబడి ఉందని చెబుతుంది. క్లయింట్ తిరిగి కనెక్ట్ అయిన తర్వాత మరోసారి పునరావృతం చేయండి, ఊహించడం కాకుండా టన్నెల్ మార్గం తిరిగి రావడాన్ని చూడటానికి.
బ్రౌజర్లో నెట్వర్క్ ప్యానెల్ రెండు ప్రశ్నలను వేరు చేస్తుంది. Fetch/XHRకు ఫిల్టర్ చేయండి, ఆపై ప్రారంభకుడు నిలువు వరుస చదవండి: టైమర్ లేదా స్క్రిప్ట్ ప్రారంభించిన, దానికి ముందు ఏ నావిగేషన్ నమోదు కాని ఎంట్రీ తిరిగి లోడ్ కాదు, నేపథ్య ప్రయత్నం. దాని ప్రారంభ సమయాన్ని టన్నెల్ కట్ అయిన క్షణంతో పోల్చండి. టన్నెల్ వెళ్లినప్పుడు కూడా ఎంట్రీ పెండింగ్లో ఉంటే, అభ్యర్థన ఇక లేని మార్గం కోసం ఎదురుచూస్తోంది.
సర్వర్ వైపు సాక్ష్యం బ్రౌజర్ చూపించే దేనికంటే బలమైనది. సమయ ముద్ర మరియు మూల చిరునామాతో కూడిన అభ్యర్థన లాగ్ ప్యాకెట్ చేరుకుందని నిరూపిస్తుంది. బ్రౌజర్ ఎంట్రీలు కుకీలు, టోకెన్లు మరియు పూర్తి URLలను మోయగలవు, కాబట్టి మీ ప్రశ్నకు అవసరమైన ఫీల్డ్లను మాత్రమే ఉంచి మిగిలినవి ఎక్కడైనా పేస్ట్ చేసే ముందు దాచండి.
సమాధానంతో ఏమి చేయాలి
టన్నెల్ క్రింద ఉన్నప్పుడు నేపథ్య ప్రయత్నాలు విజయవంతమవుతూనే ఉంటే, బ్లాక్ మీరు ఊహించిన దానికంటే సన్నగా ఉంది, మరియు సున్నితమైన పని కోసం క్లయింట్ను నమ్మే ముందు ఆ గ్యాప్ను మూయడం విలువైనది. అవి విఫలమైతే, విధానం తన పని చేస్తోంది మరియు గడ్డకట్టిన పేజీ కేవలం రూపం. ఏ సందర్భంలోనైనా, ఒక ట్యాబ్ను మూయడం పరికరం మొత్తానికి నియంత్రణ కాదు: ఇతర ట్యాబ్లు, ఇతర బ్రౌజర్లు మరియు ఇతర యాప్లు ప్రతి ఒక్కటి తమ పనిని తామే షెడ్యూల్ చేసుకుంటాయి.
తీసుకోదగిన తదుపరి అడుగులు: మీరు ఏ మినహాయింపులు, ఎందుకు జోడించారో జాబితా చేయండి, క్లయింట్ టన్నెల్ పరిధి ట్రాఫిక్ను మాత్రమేనా లేదా మొత్తం ట్రాఫిక్ను బ్లాక్ చేస్తుందో నిర్ధారించండి, మరియు సర్వర్ లాగ్ తెరిచి ఉంచి ఒక నేపథ్య అభ్యర్థనను ప్రారంభం నుండి ముగింపు వరకు గమనించండి. ఆ మూడు సమాధానాలు «VPN కట్ అయింది, ఇంకా ఏదో కనెక్ట్ అయి ఉంది» అనే నివేదికలో నిజంగా ఉన్నదానిలో ఎక్కువ భాగాన్ని కవర్ చేస్తాయి.