Таб дээр туннель үхэхээс өмнөх хянах самбар харагдаж байна. Статусын тоонууд хөлдөж, жижиг эргүүлэг эргэсээр, хаягийн мөрөнд нэг цагийн өмнө нээсэн апп байна. Тасарсны дараа та юунд ч хүрээгүй, гэхдээ хуудас өөрийн хуваарийн дагуу сервертээ хүрэхийг оролдсоор байж магадгүй. Хүмүүсийн алдаж байдаг зүйл нь энэ: зөвхөн харагдаж буй хуудас ба хүсэлт илгээсээр буй хуудас гаднаас ижил харагдана, тэдгээрийн зөвхөн нэг нь сүлжээний бүртгэлд харагдана.

Хуудас таныггүйгээр эхлүүлдэг ажил

Дөрвөн механизм ачаалагдсан баримтыг завгүй байлгадаг. Давтагдах таймер хэдэн секунд тутамд статусын дуудлагыг дахин ажиллуулж болно. Та буцаж ирсний дараа таб дахин харагдах үед fetch ажиллаж болно. WebSocket эсвэл серверийн илгээсэн үйл явдлууд дээр баригдсан шууд суваг өөрийн ухрах хуваарийн дагуу дахин холбогдохыг оролдож болно. Сайтын бүртгэсэн service worker таны өмнө таб байхгүй ч дараалалд орсон синхрончлолын төлөө сэрж болно.

Тэдгээрийн аль нь ч товшилт шаарддаггүй, аль нь ч баримтыг дахин ачаалдаггүй. Хаягийн мөр, гүйлгэх байрлал, харуулсан утгууд бүгд байсан газраа үлдэнэ. Зөвхөн сүлжээний тал өөрчлөгдөнө: шинэ оролдлого бүр эхэлж буй мөчид гаргасан шинэ шийдвэр юм.

Энэ ялгаа нь чухал, учир нь харагдаж буй хуудас локал хадгалагддаг. Аль хэдийн зурсан пикселүүд дараагийн хүсэлт амжилттай болсон эсэхийг хэлж чадахгүй. Эргүүлэгтэй хөлдсөн график нь хүсэлтүүд нь одоо бүтэлгүйтэж буй хуудасны ердийн дүр төрх юм. Дэлгэцийг унших нь сервер хэдэн минутын өмнө юу хэлснийг хэлнэ, браузер одоо юу хийж байгааг биш.

Өмнөх хуудасны ачаалал яагаад маршрут барихгүй байна

Хуудасны ачаалалд юу ч баримтыг туннельд холбодоггүй. Маршрутлалт пакет бүрт, илгээх мөчид, пакет гарах үед байгаа хүснэгтээс шийдэгддэг. Туннелийн интерфэйс алга болоход тэр хайлт туннелийн маршруттай тохирохоо болино. Энэ нь физик адаптер руу унах эсвэл юу ч олохгүй байх, клиент юу үлдээснээс хамаарна.

Давтагдах дуудлагууд бол энгийн төлөвлөсөн ажлууд. 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 тасарсан ч ямар нэгэн зүйл холбогдсон хэвээр байна» гэсэн тайлан үнэхээр агуулж буй зүйлийн ихэнхийг хамарна.

Холбоотой нийтлэлүүд