Web Rendering Proxy: ciekawy pomysł na przeglądanie stron WWW pod retro PC

Strona główna Aktualności
Web Rendering Proxy (Pixabay)
Web Rendering Proxy (Pixabay)

O autorze

Jednym z podstawowych problemów, które prędko wpędzają we frustracje podczas zabaw ze starymi komputerami, jest przenoszenie danych. Portów USB nie ma, napędów dyskietek nie ma z kolei na komputerze z którego chcemy coś skopiować, a karta sieciowa – jeśli jest – początkowo nie ma sterowników. A nie pobierzemy ich, bo przecież nie mamy internetu! Potrzebne pliki mogą się znajdować zaraz obok, ale nie ma prostej metody, żeby je przerzucić...

A to dopiero początek zabawy. Gdy wymienimy np. dysk twardy retro-peceta na kartę CF (są one logicznie zgodne ze standardem IDE bez aktywnych adapterów) i wrzucimy na nią wszystko, czego potrzeba do podpięcia się do internetu, prędko odkryjemy, że choć protokoły jak HTTP są w dalszym ciągu zgodne w dół, to efektywnie przeglądać internetu po prostu się nie da. Wynika to z ewolucji stron internetowych w kierunku web-aplikacji, wskutek czego potrzebują one dziś nie tylko szerokiego łącza, ale również mocnego procesora i dużo pamięci. Nie wspominając już o tym, że pełną obsługę HTML5 dostarczają dziś wyłącznie przeglądarki wymagające rozszerzeń procesora dostępnych dopiero od czasów układu Core 2 Duo i niedziałające na niczym starszym od Windows 7.

WWW odpada

Rzecz jasna, przeglądanie internetu nie jest powodem, dla którego składa się dziś stare komputery. Jeżeli wykorzystuje się je do sieci, to raczej do zastosowań obciążonych mniejszym balastem, niż dzisiejsze HTTPS. Outlook Express 5 od biedy pobierze pocztę z o2 i GMaila, sieci IRC dalej wpuszczają połączenia z najbardziej antycznych nawet klientów. Na Windows 95 działa wersja 0.65 terminala PuTTY z obsługą RS-232, Telnetu oraz SSH. Więc jeżeli nie chcemy się łączyć np. zaszyfrowanymi kluczami ed25519 do komputera w sieci IPv6, to łączność po powłoce ze zdalnym i w miarę nowym Uniksem powinna w dalszym ciągu działać poprawnie ze starego sprzętu. Problemem pozostają te nieszczęsne strony internetowe...

Chcąc nie chcąc, niektóre treści są dostępne tylko drogą WWW. Coraz więcej materiałów jest w dodatku oferowanych dynamicznie, więc po prostu musimy przetworzyć choć trochę JavaScriptu po stronie klienta. Dla komputerów z procesorem np. Pentium MMX 133 MHz takie zadanie może być zabójcze. Zwłaszcza, gdy korzystamy z przeglądarki Internet Explorer, której dawne wersje były oszałamiająco nieoptymalne podczas parsowania skryptów JS. Szamotanina między oprogramowaniem lekkim oraz skutecznym sprawia, że pomysł korzystania ze stron internetowych jest naprawdę denerwujący. Na szczęście stworzono eleganckie w swej brutalności rozwiązanie.

Serwer WRP

Narzędzie Web Rendering Proxy (WRP) jest dokładnie tym, co mówi jego mało wyszukana nazwa: serwerem pośredniczącym, oferującym gotowe, wyrenderowane strony internetowe jako obrazki skorelowane z "klikalną" mapą linków. Serwowana strona internetowa korzysta z HTML jedynie w elementarnym stopniu, dzięki czemu może być poprawnie otwarta nawet w najstarszych przeglądarkach WWW bez obsługi skryptów, a nawet HTMLa 4.0. Autorem tego rozwiązania jest Antoni Sawicki (tenox), starszy programista w Google. Projekt jest ponownie po kilku latach przerwy i tym razem dzieje się to z uwzględnieniem nowych trendów technicznych w internecie.

Ze względu na migrację sieci na szyfrowany protokół HTTPS, Web Rendering Proxy nie może być przezroczystym pośrednikiem, jakim był na początku. Powrót do tej postaci jest najwyraźniej jednym z celów projektu, ale na to przyjdzie trochę poczekać. Obecnie bowiem funkcjonalność jest realizowana za pomocą warstwy "przeglądarka-w-przeglądarce": retro-browser wyświetla stronę wyglądającą jak przeglądarka. Dopiero w niej wpisujemy adres strony, którą chcemy obejrzeć. WRP jest rozwijane na Githubie i dostarczane jako kontener Dockera (repozytorium tenox7/wrp) lub prekompilowany, statyczny plik wykonywalny (12MB "wszystko w jednym"). Dostępne są wersje ARM i AMD64 dla Linuksów, Windows, MacOS, a nawet kilku systemów BSD!

Obfotografowanie Chrome

Jak WRP spisuje się w praktyce? Cóż – niewątpliwie spełnia swoje zadanie. Zaserwuje zarówno starą, statyczną stronę, jak i rozbudowaną witrynę dużego portalu: wynikowy obrazek jest tak samo złożony w obu tych przypadkach, w tym drugim serwer będzie po prostu potrzebował chwilę więcej czasu. Daleko mu jednak do płynności. I nie wynika to z faktu niebycia prawdziwą warstwą proxy, a z tego, jak w praktyce WRP przygotowuje odpowiedź. Uruchamia on na serwerze sesję Google Chrome, otwiera w niej żądaną stronę, po czym robi jej zrzut ekranu. Na otwartej stronie lokalizowane są współrzędne klikalnych elementów, które następnie są podpinane jako mapa pod obrazek. Taki zestaw jest splatany w kod HTML serwowany przeglądarce odbiorczej. Klient otrzymuje więc de facto statyczny obrazek. Mogłoby się wydawać, że takie realizowanie żądań jest bardzo powolne, ale Web Rendering Proxy odpowiada bardzo szybko. Również nawet słabe komputery wyświetlą treść od WRP bez szczególnej męki i przestojów. Chodzi o coś innego.

Problemem jest tu przede wszystkim płynność, co najlepiej widać podczas przewijania. WRP nie robi screena całej strony, a jedynie widzialnego obszaru, czyli "góry". Aby przewinąć stronę, trzeba obecnie kliknąć przycisk nawigacyjny na nagłówku strony lub celować w... pasek przewijania, wklejany w obrazek strony razem z samym dokumentem. Przewinięcie strony wymusza jej przerysowanie, musimy wtedy czekać na nowy obrazek z serwera. Pocieszne? Być może, ale to tak naprawdę jedyna dostępna racjonalnym kosztem metoda, w praktyce zresztą bardzo sprytna. Problem przewijania i skalowania został rozwiązany poprzez możliwość podania długości (w pikselach) do pobrania i sfotografowania "na zapas". Trudno tu tak naprawdę o alternatywę: z definicji nie da się przerzucić na klienta więcej przetwarzania, a dynamiczne zmienianie stylu i porządku stron internetowych jest niemożliwe przy ich dzisiejszej złożoności: jeżeli strona sama nie dostarcza swojej wersji "light" lub "mobile", nie da się jej wyczarować żadnymi potencjalnymi, uniwersalnymi mechanizmami.

Wykluczające szyfrowanie

Ciężkość stron nie jest jedynym problemem dzisiejszego internetu, który da się ominąć z wykorzystaniem WRP. Drugim jest powszechne szyfrowanie TLS, samo w sobie - chwalebne. Z tym, że wprowadzenie uniwersalnego HTTPS wcale nie jest idealnym scenariuszem pozbawionym wad. Bezpieczny, szyfrowany internet nie jest ogólnodostępny: jeżeli ktoś nie może przeglądać sieci w wariancie szyfrowanym, prędko odkryje, że alternatywne kanały po czystym HTTP przestają istnieć. Odczuwalne problemy z szyfrowaniem są rzadkie i przez właściwą dla Pierwszego Świata arogancję uznajemy je dziś za absurdalne. A są nimi np. marne łącze (HTTPS utrudnia cache'owanie treści), słaby sprzęt oraz stare oprogramowanie (nowe szyfry wymagają nowych bibliotek – coś w stylu "kodeków", ale do mechanizmu SSL). WRP nie powstało, by rozwiązać akurat ten problem, ale da się dzięki niemu zobaczyć, że warstwa szyfrująca, rozpięta nad ruchem WWW, nie jest czymś danym za darmo.

Chwila zabawy z Proxy pozwala też dostrzec, jak strasznie spuchł dzisiejszy internet. Dawny podział na usługi, jak poczta, czat i grupy dyskusyjne zniknął. Dziś wszystko działa jako kompletny mix wszystkiego po trochu, w dodatku na tym samym porcie i po tym samym protokole. Jedyną aplikacją kliencką już lata temu stała się przeglądarka internetowa, a dynamiczny rozwój standardów wymusza jej ciągłą aktualizację. Stanowi to silny kontrast względem klientów pozostałych protokołów, jak poczta i IRC, gdzie bardzo często wystarcza bardzo mały program na bardzo słabym sprzęcie. Widać też, że początkowo strony internetowe miały być czymś zupełnie innym, niż to czym są obecnie. Nasz dzisiejszy los jest konsekwencją wprowadzenia obsługi JavaScriptu. Poza techniką, w ciągu ostatnich lat zmianie uległa jednak także dynamika komunikacji, więc ewolucja oprogramowania niekoniecznie zaszła w jednoznacznie błędnym kierunku.

Bezsprzecznie jednak, Web Rendering Proxy nie aspiruje do podejmowania owych kwestii. To aplikacja zorientowana na dostarczenie namiastki internetu na retro pecetach. Spełnia swoje zadanie znakomicie. O ile oczywiście pamiętamy, że dwudziestoletnie komputery, niezależnie od siły nostalgii, nie mogą stać się pełnoprawnymi substytutami dzisiejszych urządzeń. Są powolne, głośne i niezdrowe. Ale często mają swoją magię i jeżeli tylko da się złagodzić dotkliwość przeglądania sieci i przenoszenia danych – czemu z tego nie skorzystać? Wersja dla Windows jest dostępna, ale po pobraniu wymaga kilku manualnych kroków, by dało się z niej korzystać, np. obecności "google-chrome" w zmiennej środowiskowej PATH, ustawień zapory oraz wyjątku w filtrze SmartScreen.

© dobreprogramy