r   e   k   l   a   m   a
r   e   k   l   a   m   a

Internet w stylu retro: Gopher, czyli nostalgia za świstakami

Strona główna AktualnościINTERNET

W najlepszym razie nazwiecie to ciekawą internetową archeologią, w najgorszym razie uznacie to za nekrofilię. Zapraszamy Was na podróż przez port 70 po gopherspace, przestrzeni informacji o której zapomniano już na początku tego stulecia, a która była pięknym i czystym prekursorem WWW w czasach, gdy treść była wszystkim, a forma niczym. Dla starszych Czytelników będzie to może miłe wspomnienie, dla tych młodszych wejrzenie w świat, który nigdy nie nastał – bo warto podkreślić, że był czas, gdy protokoły HTTP i Gopher współistniały, wręcz rywalizując ze sobą. Skończyło się tak jak wiecie, w końcu czytacie te słowa na stronie WWW serwowanej przez protokół HTTP. A czy mogło skończyć się inaczej?

Dzień świstaka

Przez chwilę bowiem, a właściwie to sam początek lat 90, Gopher był przyszłością Sieci. Pomyślany jako protokół do serwowania plików po TCP/IP, w rodzaju FTP czy Telnetu, był jednak mocno zorientowany na obsługę dokumentów z linkami i menu. Dokumenty oczywiście były czysto tekstowe, formatowane z myślą o możliwościach antycznych terminali tekstowych, a ich menu stanowiły ściśle zdefiniowane hierarchiczne drzewa. Tym, co odróżniało Gophera od normalnych BBS-ów była jednak otwartość – jeśli miało się już adres dokumentu, to można było do tego dokumentu linkować z dowolnego innego dokumentu w tzw. gopherspace, czyli wirtualnej przestrzeni dokumentów serwowanych po tym protokole.

Lekkość protokołu i jego prostota, oraz szybkość wdrożenia i skonfigurowania serwerów sprawiły, że Gopher zaczął być szybko stosowany przez systemy informacji uniwersyteckiej w USA, tworzące w ten sposób pierwsze wspólne elektroniczne biblioteki. W czasach, gdy nikt jeszcze nie myślał o stronach WWW czy katalogach LDAP, ludzie wyszukiwali swoje adresy poczty elektronicznej, przeglądając gopherową hierarchię w poszukiwaniu serwerów nazw Qi, by odpytać je o dane kontaktowe za pomocą klientów Ph. I ludziom się to podobało – nawet gdy pojawiły się pierwsze serwery WWW, wielu narzekało, że to tylko bałagan, a chaotyczna forma dokumentu HTML sprawia, że nie da się tego czytać. W dodatku WWW nie miało wówczas żadnej dobrej wyszukiwarki, podczas gdy zawartość gopherspace łatwo było przeglądać za pomocą wyszukiwarki Veronica (Very Easy Rodent-Oriented Net-wide Index to Computer Archives).

r   e   k   l   a   m   a

I kto wie, jak by się to wszystko potoczyło, gdyby nie jeden głupi ruch University of Minnesota, uczelni, która miała prawa autorskie do serwera Gophera. Jej włodarze w 1993 roku wymyślili sobie, że będą pobierać opłaty licencyjne za korzystanie z ich serwera, co wywołało panikę wśród twórców niezależnych implementacji (a były to czasy, gdy nikt specjalnie nie wiedział, o co chodzi z licencjonowaniem Open Source). Pojawienie się na Uniksy, a potem także na Windowsy graficznej przeglądarki Mosaic załatwiło sprawę. Uznano, że HTML nie jest taki trudny i da się z nim żyć – i rozpoczął się masowy eksodus do WWW. Z dziesiątek tysięcy serwerów Gophera zrobiły się tysiące, a potem setki.

Do 1995 w zasadzie wszystko było już pozamiatane. W roku tym próbowano jeszcze wskrzesić Gophera za pomocą szalonego pomysłu na wirtualną rzeczywistość GopherVR (tak, ludzie wcale nie zaczęli się ekscytować VR-em na tegorocznych targach MWC w Barcelonie), ale nic z tego nie wyszło, mimo że miało być równie wspaniale, jak w Neuromancerze Williama Gibsona. Ot, przyszłość w stylu retro, która nigdy nie nadeszła, która zdołała jedynie przedstawić prototypową wersję, by zaginąć niebawem w awarii serwera FTP. I mimo że w roku 2000 University of Minnesota wydało kod serwera Gophera na licencji GPLv2, niczego to nie zmieniło. W połowie poprzedniej dekady liczba serwerów Gophera spadła poniżej setki. W końcu wsparcie dla tego protokołu zaczęły zarzucać kolejne przeglądarki – Internet Explorer 6 (kończąc wraz z aktualizacją MS02-047), Firefox (kończąc na wersji 3.6) czy SeaMonkey (kończąc na wersji 2.1).

Proste hierarchie, trudne konfiguracje

Skoro zatem świstak (bo tak nazywano w Polsce ten protokół, mimo że gopher to po angielsku zupełnie inne zwierzątko, a mianowicie niewystępujący u nas goffer) już się skończył, to po co o nim wspominać poza encyklopedycznymi przypisami do historii Internetu? Są dwa powody, które naszym zdaniem usprawiedliwiają ten tekst.

Pierwszy to powód techniczny. Gopher jest bardzo prosty, tak prosty, że nie potrzebuje własnego klienta. Jak ktoś się uprze, może korzystać z takich narzędzi jak netcat, by przeglądać po sesji TCP zasoby serwera udostępniane na porcie 70 (domyślny port serwera WWW to 80). Do serwera wysyła się ciąg znaków, tzw. selektor, po którym następuje powrót karetki i obrót wałka do nowej linii, czyli sekwencja CR LF (przypomnijcie sobie maszynę do pisania). Selektor identyfikuje jednoznacznie dokument, a jeśli jest pusty, to serwer zwróci domyślny katalog, wraz ze swoim menu, składającym się z linii zawierających zawsze pięć pól: typ obiektu, opis, selektor, nazwę hosta i numer portu.

Typ obiektu zapewnić miał rozszerzalność protokołu. Początkowo były tylko dwa obiekty, 0 – tekst i 1 – lista menu katalogu, potem pojawiły się wspomniane serwery nazw Qi, dane heksadecymalne, binarne archiwa, sesje Telnetu. W końcu doszły do tego obrazki GIF, JPG, pliki HTML, a nawet pliki dźwiękowe. Po wybraniu pozycji w menu reprezentującej określony rodzaj dokumentu, jego treść była albo bezpośrednio wyświetlana na ekranie, albo przekazywana do klienta analogicznie jak w FTP, by zostać zapisaną, lub w niektórych wypadkach (np. plikach graficznych) także wyświetloną. W wypadku odnośników do sesji telnetowych, gopher wywoływał po prostu klienta telnetu celem nawiązania połączenia.

Jak widać więc, gopher jest rozproszonym systemem linków, podobnie jak WWW. Na czym polega więc główna różnica? W dokumentach HTML wystarczy umieścić w treści HTML znacznik A z adresem URL, by połączenie z tym adresem zostało zrealizowane przez przeglądarkę. W gopherze jednak w procesie linkowania uczestniczy serwer, który w swoich plikach konfiguracyjnych musi mieć opisane połączenia między serwerami gopherspace.

Dlatego też Gopher jest nie tyle systemem hipertekstu, co raczej sieciowym systemem plików tylko do odczytu – i można go tak traktować. Jeśli macie pod ręką linuksową maszynę lub Maka, możecie skorzystać z systemu plików gopherfs, który podłączany jest jako moduł FUSE i pozwala na przeglądanie gopherspace za pomocą zwykłego menedżera plików, takiego jak np. Midnight Commander (mc).

Hipster browsing

Drugi powód jest kulturowy – gopher nie umarł, lecz zszedł do informatycznego podziemia (złośliwi powiedzą raczej: piwnicy), gdzie cieszy się upodobaniem nie tylko brodatych nerdów w szelkach. Niemałe grono pasjonatów uruchamia nowe serwery, wypełnia gopherspace treścią, a nawet… rozwija oprogramowanie serwerowe i klienckie. To prawdziwy fenomen: ostatnie wersje oprogramowania serwerowego gophera, takiego jak GoFish, Gophernicus czy Motsognir pojawiły się w ciągu minionego roku, zaczęto też implementować zaproponowane w 1993 roku rozszerzenia Gopher+, przynoszące obsługę metadanych, interaktywne zapytania, opisy obiektów i różne widoki dokumentów.

Jak ktoś chce uruchomić swojego własnego świstaka, to polecić możemy ostatni kultowy uniksowy hosting, Super Dimension Fortress Public Access Unix System, który znajdziecie pod adresem sdf.org. A jeśli zechcecie tam coś wypisać, to przydać się może narzędzie do formatowania akapitów par, za pomocą którego ładnie zawiniecie wszystko do klasycznych 67 znaków w linii.

Rozwijane są też oczywiście klienty Gophera. Może i przeglądarki normalnie już Gophera nie obsługują, ale Firefoksowi (i SeaMonkey) łatwo jest przywrócić utraconą funkcjonalność, instalując dodatek OverbiteFF. Dla Chrome'a dodatek po zmianach w API tej przeglądarki, które wprowadzono wraz z Chrome 24m już nie działa, ale w tym wypadku można skorzystać z publicznego proxy Floodgap. Z początkiem tej dekady pojawił się też eksperymentalny klient na Androida, choć trzeba przyznać, że chyba o pracach nad nim szybko zapomniano. W AppStore można za to znaleźć kosztującego 2 dolary klienta dla iOS-a, z którym możemy przeglądać sieć tak, jakby to wciąż był 1991 rok.

Działa też wciąż wyszukiwarka Veronica, a właściwie jej reimplementacja pod nazwą Veronica-2 (link do gopherspace). Obecnie zidentyfikowała ona w Sieci 127 unikatowych serwerów Gophera, zawierających ponad 3,8 mln unikatowych selektorów. Wśród nich sporą znajdziemy np. phlogi, tj. gopherowe blogi, które wygenerować można np. z WordPressa, za pomocą narzędzia WP2Gopher. Tak, dobrze myślicie, komentujemy wykorzystując serwer telnetu.

To nie wszystko. W październiku zeszłego roku, hobbyści ożywili projekt GopherVR, wydając jego nową wersję, zbudowaną na bazie kodu z minionego stulecia. Kompiluje się na Linuksie i OS-ie X – i choć niedokończona, pozwala się pobawić w cyberpunkowego hakera. Jak więc widzicie, z jakiegoś powodu jest grono ludzi, które Gophera darzy gorącym uczuciem.

A tak naprawdę, to po co to komu?

Hobby nie potrzebuje usprawiedliwień, w końcu kto hobbyście zabroni? Fani Świstaka twierdzą jednak, że to więcej, niż tylko zabawka, i więcej niż tylko próba odpoczęcia od przeładowanego sensorycznie WWW. Gopher, rozłączając interfejs od treści, pozwala spojrzeć na nowo na wartość hierarchicznych struktur danych, w których odpowiedzi udzielane użytkownikom są przewidywalne w formie, wolne od wszystkiego co zbędne – i przez to przyjaźniejsze dla użytkowników.

Miałby też Gopher być zarazem odpowiedzią na potrzebę zapewnienia możliwości przeglądania danych w środowiskach o niskiej mocy obliczeniowej. Lekki protokół, format, który jest wręcz trywialny do parsowania, wymogi sprowadzające się do posiadania stosu sieciowego – to wszystko mogłoby uczynić z Gophera interesujące rozwiązanie dla Internetu Rzeczy, strukturę danych, która zapewniając interoperacyjność z WWW (nietrudno jest treści z Gophera odziać przecież w CSS i skrypty JS), wciąż byłaby czymś więcej, niż tylko przejawem nostalgii.

Jak to będzie w przyszłości – trudno powiedzieć. Na razie zapraszamy do zainstalowania Overbite i wypróbowania Świstaka na nowo.

© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.