Wstęp do technologii webowych

WWW/w3 (ang. World Wide Web) – internetowy system organizacji informacji składający się z dokumentów tekstowych w formacie html. Dokumenty te mogą zawierać odnośniki do innych dokumentów, również na innych serwerach, dzięki temu, że każdy dokument posiada unikalny adres URL. Przykładowo adres:

https://writefreely.pl/anedroid/www

wskazuje na dokument:

Przeglądarka www – program, który przy pomocy protokołu http pobiera wybrany dokument z serwera i go wyświetla. Przykładem takiego programu jest LibreWolf.

HTML (ang. HyperText Markup Language) – język opisu dokumentów pozwalający m.in. na formatowanie tekstu, zamieszczanie w nim obrazków ładowanych ze wskazanego adresu URL i elementów interaktywnych, np. formularzy w celu przesłania na serwer danych wprowadzonych przez użytkownika.

<!DOCTYPE html>
<html>
<head>
<meta name="author" content="anedroid">
<title>Przewodnik po alternatywnym internecie</title>
</head>
<body>
<h1>Nagłówek 1-go stopnia</h1>
<p>Treść pierwszego akapitu</p>
<p>Treść drugiego akapitu z <b>pogrubionym tekstem</b></p>
<a href="https://internet-czas-dzialac.pl">link do zewnętrznej strony</a>
</body>
</html>

Wyżej przykładowy dokument HTML zawierający: metadane (autor i tytuł), nagłówek, 2 akapity i odnośnik. Wyprodukuje następującą stronę:

Nagłówek 1-go stopnia

Treść pierwszego akapitu

Treść drugiego akapitu z pogrubionym tekstem

link do zewnętrznej strony


HTTP (ang. HyperText Transfer Protocol) – protokół typu klient-serwer. Umożliwia m.in.:

Aby wyświetlić stronę www, przeglądarka:

  1. Sprawdza odpowiadający domenie adres IP w rejestrze DNS. Domena to np. writefreely.pl, a adres IP to 195.117.15.126. Serwer DNS przechowuje u siebie tabelę takich powiązań, dzięki czemu możemy mieć czytelne linki bez ciągów liczb.
  2. Nawiązuje połączenie z serwerem o tym IP i wysyła żądanie zawierające ścieżkę do żądanego pliku + nagłówki HTTP z dodatkowymi informacjami (np. preferowany język).
  3. Serwer odsyła kod odpowiedzi, własne nagłówki oraz treść dokumentu (albo i nie). Kod odpowiedzi mówi, czy wszystko poszło ok lub jakiego rodzaju problem wystąpił. W nagłówkach odpowiedzi może być np. format pliku (html, jpeg, pdf, etc.)
  4. Przeglądarka przetwarza otrzymany kod HTML na jego graficzną reprezentację.
  5. W dokumencie mogą być osadzone elementy wskazane adresem URL (np. obrazy). Przeglądarka wykonuje kolejne żądania dla każdego z tych elementów.

HTTP jest protokołem tekstowym – komunikację przeglądarki z serwerem można podejrzeć i przeanalizować. Oto przykładowe żądanie HTTP:

GET /wiki/Domain_Name_System HTTP/2
Host: en.wikipedia.org
User-Agent: curl/8.2.1
Accept: */*
Accept-Language: en-US,en;q=0.5

A to jest fragment odpowiedzi:

HTTP/2 200
date: Fri, 23 Feb 2024 04:15:21 GMT
content-language: en
content-type: text/html; charset=UTF-8
content-length: 282749

<!DOCTYPE html>
...

Odpowiedź może być generowana dynamicznie, np. na podstawie zawartości bazy danych i/lub danych dostarczonych przez użytkownika (tak działają np. wyszukiwarki). Do generowania odpowiedzi wykorzystuje się skrypty CGI – programy uruchamiane przy każdym żądaniu, których wyjście jest odsyłane do przeglądarki.

Mamy więc 2 rodzaje stron www: statyczne i dynamiczne. Zazwyczaj strony zawierają powtarzające się fragmenty, jak nagłówek, stopka czy spis treści. Dla łatwiejszego zarządzania, albo są one sklejane „w locie” z treścią dokumentu (pseudostatyczność), albo automatyzuje się przygotowywanie takich plików jakimś systemem szablonów.

Generator stron statycznych – program, który wstępnie wytwarza kod HTML i inne pliki składające się na stronę www na podstawie plików źródłowych, szablonów i zdefiniowanej konfiguracji. Przykładem takiego programu jest Hugo.

Ponieważ przeglądarka „widzi” tylko rezultat przetwarzania, dopóki nie jest się właścicielem serwera, nie można ze stuprocentową pewnością odróżnić tych dwóch typów stron.

Skąd TO się wzięło?

Idea sieci www (jest to sieć za sprawą odnośników łączących dokumenty HTML) zrodziła się około 1990 roku w ośrodku naukowym CERN, a jej autorem jest Tim Berners-Lee. Pierwotnie system miał służyć celom naukowym – aby koordynować działania współpracowników między ośrodkami i umożliwić dzielenie się projektami, wynikami badań czy pomysłami.

Przeglądarka Mosaic

W owym czasie funkcjonowało kilka podobnych systemów, zwłaszcza Gopher. Oba standardy były obsługiwane przez pierwsze przeglądarki, a strony z obu systemów linkowały do siebie nawzajem.

Powyższy zrzut przedstawia Mosaic – pierwszą graficzną przeglądarkę, powstałą w 1993 roku. Okazała się strzałem w dziesiątkę i bezpośrednio przyczyniła do sukcesu www, który stał się najpopularniejszym typem usługi internetowej.

O tym, jak to poszło w złą stronę

Przez kolejne lata można obserwować, jak do standardów www dokładane jest coraz więcej rzeczy.

<div id="content">wczytywanie...</div>
<noscript>Musisz włączyć JavaScript aby korzystać z tej strony</noscript>

<script>
fetch("https://example.com/article.json")
.then(data => data.json())
.then(data => {
    const content = markdownToHTML(data.content);
    document.querySelector("#content").innerHTML = content;
});
</script>

Przykład strony, która nie zadziała bez JavaScript. Pobiera treść w tle i zamiast budować HTML na serwerze, robi to w przeglądarce.


Lista jest naprawdę długa, trudno jest nawet przypomnieć sobie o wszystkich funkcjach, jakie oferuje web. To zagrożenie dla konkurencji na rynku przeglądarek: wszystkie (z wyjątkiem Firefoxa) są zbudowane na silniku Chromium. Stworzenie nowego silnika byłoby niewyobrażalnie kosztowną inwestycją. Jak zaimplementować te dziesiątki funkcji, których użytkownicy oczekują?

Pominąłem fakt, że w międzyczasie strony „nauczyły się” wysyłać nam powiadomienia push, sprawdzać czy przełączyliśmy karty, wykrywać blokowanie reklam, zaglądać w listę zainstalowanych czcionek, poziom naładowania baterii, liczbę rdzeni procesora, i wiele, wiele więcej. Każda kolejna funkcja to kolejne potencjalne pole do nadużyć. A niestety wyścig zbrojeń nie przewidział problemów takich jak prywatność, dostępność, bezpieczeństwo czy kontrola użytkownika nad technologią.

Co więcej, świadomi użytkownicy blokujący to czy tamto, aby ograniczyć ilość zbieranych o nich danych, uwolnić się od rozpraszaczy, czy choćby zaoszczędzić transferu zużywanego na megabajty skryptów śledzących, sami mają [większą szansę bycia zablokowanym].

Blokada Cloudflare Blokada YouTube

Oto co stało się z system, który od początku miał być otwarty, zdecentralizowany i sprzyjać nauce przede wszystkim.

Konkluzja

Podsumowując, www przekształcił się z sieci dokumentów elektronicznych w sieć aplikacji. Nie da się zaprzeczyć, że wiele z dodanych funkcji przyniosło dużo korzyści. Na przykład dostęp do świata cyfrowego bez względu na urządzenie. Jednak wdrażanie tych funkcji nie było dość przemyślane i w konsekwencji Internet stał się miejscem bardzo nieprzyjaznym dla użytkownika.

Oczywiście wciąż są serwisy, które szanują nasze prawa i nie wykorzystują mechanizmów www przeciwko nam. Gdy nas blokują, domagając się akceptacji ich warunków, możemy zareagować na 2 sposoby:

  1. Zrobić co nam każą – wyłączyć adblocka, wyłączyć VPN-a, nie używać „nietypowych” przeglądarek, założyć konto, podać numer telefonu i zainstalować aplikację mobilną na niezmodyfikowanym Androidzie, a najlepiej iOS-ie.
  2. Trzymać się tych usług, które nas nie blokują i nie utrudniają nam życia z wyżej wymienionych powodów. Niewielu jest takich, którzy wybierają tę ścieżkę. Tylko ci, którzy mają w sobie dość odwagi, determinacji, tęsknią za wolnością i nie stracili nadziei, opowiedzą się po stronie alternatywnego internetu.

Co daje się we znaki, to to, że coraz trudniej jest pozostać neutralnym. Trzeba coś wybrać. Przepaść dzieląca dwie strony internetu, stale rośnie.

W następnym wpisie opowiem o kilku przydatnych wtyczkach przeglądarkowych, które pomogą choć trochę poprawić warunki na tych mniej przyjaznych stronach. Zachęcam do komentowania i obserwowania mnie na RSS-ie.


Opracowano na podstawie: