Vərəq hələ də tunel ölməzdən əvvəlki idarə panelini göstərir. Status rəqəmləri donur, kiçik fırlanaç davam edir və ünvan sətri bir saat əvvəl açdığınız tətbiqi hələ də daşıyır. Kəsilmədən sonra heç nəyə toxunmadınız, amma səhifə yenə də öz cədvəlinə uyğun olaraq serverinə çatmağa çalışa bilər. İnsanların qaçırdığı hissə budur: sadəcə görünən səhifə ilə hələ də sorğu göndərən səhifə xaricdən eyni görünür və onlardan yalnız biri şəbəkə jurnalında görünür.

Səhifənin sənsiz başlatdığı iş

Dörd mexanizm yüklənmiş sənədi məşğul saxlayır. Təkrarlanan taymer hər bir neçə saniyədən bir status çağırışını yenidən işə sala bilər. Tab siz geri qayıtdıqdan sonra yenidən görünən olduqda fetch işə düşə bilər. WebSocket və ya server tərəfindən göndərilən hadisələr üzərində qurulmuş canlı kanal öz geri çəkilmə cədvəlinə uyğun olaraq yenidən qoşulmağa cəhd edə bilər. Saytın qeydiyyata aldığı xidmət işçisi qarşınızda heç bir tab olmadıqda belə növbəyə qoyulmuş sinxronlaşma üçün oyana bilər.

Bunlardan heç biri klik tələb etmir və heç biri sənədi yenidən yükləmir. Ünvan sətri, sürüşdürmə mövqeyi və göstərilən dəyərlər olduqları yerdə qalır. Dəyişən yalnız şəbəkə tərəfidir: hər yeni cəhd başladığı anda verilən təzə qərardır.

Bu fərq vacibdir, çünki görünən səhifə yerli olaraq saxlanılır. Artıq çəkilmiş piksellər növbəti sorğunun uğur qazanıb-qazanmadığı barədə heç nə demir. Fırlanaçlı donmuş diaqram, sorğuları indi uğursuz olan səhifənin adi görünüşüdür. Ekranı oxumaq sizə serverin dəqiqələr əvvəl dediyini deyir, brauzerin indi nə etdiyini deyil.

Niyə əvvəlki səhifə yükləməsi marşrut saxlamır

Səhifə yükləməsində heç nə sənədi tunelə bağlamır. Marşrutlaşdırma hər paket üçün, göndərmə anında, paket çıxarkən mövcud olan cədvəldən həll olunur. Tunel interfeysi yox olduqda, həmin axtarış artıq tunel marşrutuna uyğun gəlmir. O ya fiziki adapterə düşür, ya da heç nə tapmır, müştərinin arxada qoyduğundan asılı olaraq.

Təkrarlanan geri çağırışlar adi planlaşdırılmış tapşırıqlardır. HTML standartının taymer bölməsi onların necə növbəyə qoyulduğunu təsvir edir və intervalı dəqiq temp vədindən çox minimum gecikmə kimi qiymətləndirir, buna görə arxa plandakı tab kodunun istədiyindən qat-qat az sorğu göndərə bilər. Daha az cəhd heç cəhd olmaması ilə eyni deyil və tabı yenidən önə gətirmək onların partlaması üçün adi bir məqamdır.

Uğursuzluq siyasəti haraya düşür

Müştərinin bloku səhifə gətiriləndə deyil, əlaqə cəhdi ediləndə qiymətləndirilir. Adi giriş hələ də icazəli olsa, yenidən cəhd fiziki linklər üzərindən açıq şəkildə çıxa bilər. Siyasət bu trafiki tunel qayıdana qədər saxlayırsa, cəhd qoşulma anında uğursuz olur və səhifə bir neçə saniyə sonra yenidən cəhd edə biləcəyi xəta göstərir.

İki detal bunlardan hansını alacağınızı müəyyən edir. Birincisi müştərinin dəstəklədiyi tətbiq əhatəsidir: bütün cihaz üzrə blok, tunel adapteri ilə məhdudlaşan blok, ya da istisnaları olan qayda dəsti. İkincisi hədəfin əvvəllər yerli printer, əsir portal və ya yayım xidməti üçün əlavə etdiyiniz istisnanın içində olub-olmamasıdır.

Tətbiq səviyyəsində şifrələmə bunların heç birini dəyişmir. HTTPS brauzerlə server arasındakı baytları qoruyur; onları hansı interfeysin daşıdığı barədə heç nə demir. Səhifə tam şifrəli ola bilər və yenə də yanlış yoldan çıxa bilər və dar blokun imkan verdiyi də məhz budur.

Birdəfəlik səhifə ilə nəzarətli yoxlama

Nəzarət etdiyiniz bir host və yalnız onu çağırmaqdan başqa heç nə etməyən bir səhifə istifadə edin ki, oyunda real məlumat olmasın. Terminaldan kəsilmədən əvvəl və sonra yolu nümunə götürün:

curl -sS --max-time 5 -o /dev/null -w '%{http_code} %{remote_ip}\n' https://probe.example.net/ping

Tunel açıq ikən işə salın, sonra tuneli bağlayın və yenidən işə salın. Tunel bağlı ikən ictimai ünvandan gələn cavab sizə birbaşa yolun açıq olduğunu deyir. Vaxt aşımı və ya rədd edilmiş əlaqə siyasətin saxladığını deyir. Müştəri yenidən qoşulduqdan sonra bir dəfə də təkrarlayın ki, tunel yolunun geri qayıtdığını görəsiniz, sadəcə fərz etməyəsiniz.

Brauzerdə Şəbəkə paneli iki sualı ayırır. Fetch/XHR-ə filtr edin, sonra təşəbbüskar sütununu oxuyun: taymer və ya skript tərəfindən başladılan, ondan əvvəl heç bir naviqasiya qeyd olunmayan giriş yenidən yükləmə deyil, arxa plan cəhdidir. Onun başlama vaxtını tunelin düşdüyü anla müqayisə edin. Tunel getdikdə giriş hələ gözləmədədirsə, sorğu artıq mövcud olmayan yolda gözləyir.

Server tərəfindəki sübutlar brauzerin göstərdiyi hər şeydən güclüdür. Vaxt damğası və mənbə ünvanı olan sorğu jurnalı paketin gəldiyini sübut edir. Brauzer girişləri kukilər, tokenlər və tam URL-lər daşıya bilər, ona görə yalnız sualınızın ehtiyac duyduğu sahələri saxlayın və qalanını hər hansı yerə yapışdırmadan əvvəl redaktə edin.

Cavabla nə etmək lazımdır

Tunel bağlı ikən arxa plan cəhdləri uğur qazanmağa davam edirsə, blok fərz etdiyinizdən dardır və bu boşluq müştəriyə həssas işlərdə etibar etməzdən əvvəl bağlanmağa dəyər. Uğursuz olurlarsa, siyasət öz işini görür və donmuş səhifə kosmetikdir. Hər halda, bir tabı bağlamaq cihaz miqyaslı nəzarət deyil: digər tablar, digər brauzerlər və digər tətbiqlər hər biri öz işini planlaşdırır.

Dəyərli növbəti addımlar: hansı istisnaları və niyə əlavə etdiyinizi sadalayın, müştərinin yalnız tunel əhatəsindəki trafiki, yoxsa bütün trafiki blokladığını təsdiqləyin və server jurnalı açıq ikən bir arxa plan sorğusunu başdan sona izləyin. Bu üç cavab «VPN düşdü və nəsə hələ də qoşulub» tipli hesabatın əslində nəyi ehtiva etdiyinin çoxunu əhatə edir.

Əlaqəli məqalələr