VPN je pao nasred stranice: izlaze li pozadinski zahtevi i dalje?
Stranica ostavljena otvorenom nastavlja da anketira, ponovo se povezuje i sinhronizuje nakon što tunel umre. Pogledajte koji pokušaji još izlaze i kako to dokazati.
Kartica i dalje prikazuje kontrolnu tablu od pre nego što je tunel umro. Brojevi stanja se zamrzavaju, mali spinner nastavlja da se obrće, a adresna traka još nosi aplikaciju koju ste otvorili pre sat vremena. Niste ništa dirali nakon prekida, a ipak stranica možda još pokušava da dođe do svog servera po sopstvenom rasporedu. To je deo koji ljudi propuštaju: stranica koja je samo vidljiva i stranica koja još šalje zahteve spolja izgledaju isto, a samo jedna od njih se pojavljuje u mrežnom dnevniku.
Posao koji stranica započne bez vas
Četiri mehanizma drže učitan dokument zauzetim. Ponavljajući tajmer može ponovo da pokrene poziv stanja svakih nekoliko sekundi. Fetch može da se aktivira kada kartica ponovo postane vidljiva nakon što se vratite na nju. Živi kanal izgrađen na WebSocketu ili na događajima koje šalje server može da pokuša ponovno povezivanje po sopstvenom rasporedu odustajanja. Servisni radnik koji je stranica registrovala može da se probudi za sinhronizaciju u redu čekanja čak i kada nema kartice pred vama.
Nijedan od njih ne traži klik i nijedan ne ponovo učitava dokument. Adresna traka, položaj pomeranja i prikazane vrednosti ostaju tamo gde su bili. Menja se samo mrežna strana: svaki novi pokušaj je sveža odluka doneta u trenutku kada počinje.
Ta razlika je važna jer se vidljiva stranica čuva lokalno. Već nacrtani pikseli ne govore ništa o tome da li je sledeći zahtev uspeo. Zamrznuti grafikon sa spinnerom uobičajen je izgled stranice čiji zahtevi sada ne uspevaju. Čitanje ekrana govori vam šta je server rekao pre nekoliko minuta, a ne šta pregledač radi sada.
Zašto ranije učitavanje stranice ne drži rutu
Ništa u učitavanju stranice ne vezuje dokument za tunel. Usmeravanje se rešava po paketu, u vreme slanja, iz tabele koja postoji kada paket izlazi. Kada tunelski interfejs nestane, ta pretraga više ne odgovara tunelskoj ruti. Ili propada na fizički adapter ili ne nalazi ništa, u zavisnosti od toga šta je klijent ostavio za sobom.
Ponavljajući povratni pozivi su obični zakazani zadaci. Odeljak standarda HTML o tajmerima opisuje kako se stavljaju u red i interval tretira kao minimalno kašnjenje, a ne kao obećanje tačnog ritma, pa pozadinska kartica može da anketira mnogo ređe nego što njen kod traži. Manje pokušaja nije isto što i nikakvi pokušaji, a vraćanje kartice u prvi plan uobičajen je trenutak za njihov izliv.
Gde politika kvara završava
Blok klijenta procenjuje se kada se pokuša veza, a ne kada je stranica dohvaćena. Ako je običan pristup još dozvoljen, ponovni pokušaj može da izađe preko fizičke veze otvoreno. Ako politika zadržava taj saobraćaj dok se tunel ne vrati, pokušaj ne uspeva u trenutku povezivanja i stranica prikazuje grešku koju može ponovo da pokuša nekoliko sekundi kasnije.
Dva detalja odlučuju koji ćete od toga dobiti. Prvi je obim primene koji klijent podržava: blok za celi uređaj, blok ograničen na tunelski adapter ili skup pravila sa izuzecima. Drugi je da li odredište pada unutar izuzetka koji ste ranije dodali za lokalni štampač, captive portal ili uslugu strimovanja.
Šifrovanje na nivou aplikacije ne menja ništa od ovoga. HTTPS štiti bajtove između pregledača i servera; ne govori ništa o tome koji interfejs ih nosi. Stranica može biti savršeno šifrovana i ipak izaći pogrešnim putem, a upravo to uski blok dozvoljava.
Kontrolisana provera sa jednokratnom stranicom
Koristite host koji kontrolišete i stranicu koja ne radi ništa osim što ga poziva, tako da u igri nema stvarnih podataka. Iz terminala uzmite uzorak puta pre i posle prekida:
curl -sS --max-time 5 -o /dev/null -w '%{http_code} %{remote_ip}\n' https://probe.example.net/pingPokrenite to sa uključenim tunelom, zatim isključite tunel i pokrenite ponovo. Odgovor sa javne adrese dok je tunel isključen govori vam da je direktni put otvoren. Istek vremena ili odbijena veza govori vam da politika drži. Ponovite još jednom nakon što se klijent ponovo poveže, kako biste videli da se tunelski put vraća, umesto da pretpostavljate da jeste.
U pregledaču mrežni panel razdvaja dva pitanja. Filtrirajte na Fetch/XHR, zatim pročitajte kolonu inicijatora: unos koji je pokrenuo tajmer ili skripta, bez zabeležene navigacije pre njega, pozadinski je pokušaj, a ne ponovno učitavanje. Uporedite njegovo vreme početka sa trenutkom kada je tunel pao. Ako je unos još na čekanju dok tunela nema, zahtev čeka put koji više ne postoji.
Dokazi na strani servera jači su od svega što pregledač prikazuje. Dnevnik zahteva sa vremenskom oznakom i izvornom adresom dokazuje da je paket stigao. Unosi u pregledaču mogu nositi kolačiće, tokene i pune URL-ove, zato zadržite samo polja koja vaše pitanje treba i redigujte ostalo pre nego što ih zalepite bilo gde.
Šta učiniti sa odgovorom
Ako pozadinski pokušaji nastavljaju da uspevaju dok je tunel isključen, blok je uži nego što ste pretpostavili, a tu prazninu vredi zatvoriti pre nego što klijentu poverite osetljiv rad. Ako ne uspevaju, politika radi svoj posao i zamrznuta je stranica kozmetička. U svakom slučaju, zatvaranje jedne kartice nije kontrola na nivou uređaja: druge kartice, drugi pregledači i druge aplikacije svaki planiraju svoj posao.
Sledeći koraci vredni preduzimanja: navedite koje ste izuzetke dodali i zašto, potvrdite da li klijent blokira samo saobraćaj u tunelskom obimu ili sav saobraćaj, i posmatrajte jedan pozadinski zahtev od početka do kraja sa otvorenim dnevnikom servera. Ta tri odgovora pokrivaju većinu onoga što izveštaj „VPN je pao i nešto je još povezano” zapravo sadrži.