Tech  / Artykuł

Google zmienia sposób, w jaki przedstawiają się przeglądarki. Zbliża się koniec ważnego elementu codziennej internetowej komunikacji

Gdy wpiszemy adres strony do przeglądarki, to zanim zobaczymy pierwszy widok odwiedzanej treści, dzieje się kilka rzeczy, które wspomagają dostosowanie treści do przeglądarki.

Jednym z tych dodatkowych kroków jest tzw. negocjacja treści (content negotiation), która pozwala stwierdzić, z jakiego rodzaju klientem (po prostu z jaką przeglądarką) serwer ma do czynienia. Ważnym elementem tego kroku od dawna była zawartość jednego z nagłówków HTTP: User-Agent String.

To właśnie za pomocą User-Agent String przeglądarki przez wiele lat przedstawiały się serwerowi. Miało to na celu np. przekazanie uproszczonej wersji strony dla przeglądarki mobilnej bądź tekstowej (był takie i wciąż czasami są używane na terminalach tekstowych), bądź umożliwienie korzystania z funkcji oferowanych przez konkretną przeglądarkę.

Szczególnie ta ostatnia cecha w pewnym momencie (na przełomie XX i XXI wieku) w trakcie tzw. wojny przeglądarek dużo napsuła w kwestii kompatybilności przeglądarek. Do dziś niektórzy ze zgrozą pamiętają strony, które działały jedynie w odpowiedniej wersji Internet Explorera.

Dziś w User-Agent String przesyłana jest zazwyczaj informacja że przeglądarką jest Mozilla (nawet jeśli tak nie jest), a dopiero w dalszej części parametrów mamy informację o systemie operacyjnym, wersji silnika renderującego HTML i konkretną wersję przeglądarki.

Dla przykładu, Chrome uruchomiony na desktopowej wersji systemu może wysłać taką wartość:

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36

Z kolei Safari na iPhone przedstawi się podobnie do następującej wartości:

Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1

Dzięki User-Agent String działa też część usług analitycznych - np. na tej podstawie ustalany jest system operacyjny użytkownika.

Ale wiecie, co? To nie działa wcale tak dobrze.

W rzeczywistości wiele przeglądarek podaje się za inne, aby uzyskać dobrze skrojone treści, a użytkownik za pomocą wejścia do ustawień przeglądarki jest w stanie wpisać tam, co tylko będzie chciał. Niektóre, szczególnie niszowe przeglądarki, wręcz z założenia kłamią że są czymś innym.

Do tego dane te, zazwyczaj niezaszyfrowane, bo przekazywane są w momencie negocjacji treści, często są wykradane przez nieuczciwych reklamodawców i są używane do śledzenia użytkownika, zamiast lub w połączeniu z ciasteczkami.

Dlatego Google postanowił rozpocząć zakrojoną na szeroką skalę reformę tego parametru. Przeglądarka Chrome zacznie wysyłać tylko podstawowe informacje: Jestem Chrome, na desktopie, bądź Jestem Chrome na urządzeniu mobilnym. Dzięki temu strona nie będzie wiedzieć np. czy pracujemy na Windows 7 czy na MacOS. Dodatkowe zmiany są zakrojone na kolejne wersje Chrome:

  • Od wersji 81 (w połowie marca 2020) Chrome zacznie pokazywać ostrzeżenia, jeśli odwiedzana strona odczytuje UA String (pokazywane w konsoli deweloperskiej - to informacja przeznaczona dla twórców stron)
  • W wersji 83 (czerwiec 2020) User-Agent String zostanie „zamrożony” i przestanie zmieniać się wraz z kolejnymi wersjami przeglądarki i zmianą systemu
  • Chrome w wersji 85 (planowanej na wrzesień 2020) zacznie podawać jedynie podstawową informację desktop / urządzenie mobilne.

Co zamiast User-Agent?

Zupełnego zniknięcia User-Agent nie chcielibyśmy - aby się o tym przekonać, wystarczy wymusić na przeglądarce jego usunięcie. Google planuje zastąpić go nowym standardem, zapisanym w inicjatywie Privacy Sandbox. Apple (producenci Safari), Mozilla (producent Firefox) oraz Microsoft (twócy Edge) już potwierdzili chęć przejścia na nowy standard, nazwany User Agent Client Hints.

Czym różnić się będzie to rozwiązanie od starego? Przede wszystkim informacja będzie przekazywana już jedynie po HTTPS, po nawiązaniu szyfrowanego połączenia - a więc teoretycznie w warunkach wzajemnego zaufania pomiędzy klientem i serwerem. Po drugie - dodatkowe informacje będą dostępne na życzenie serwera, i to tylko ta część, którą wyspecyfikuje. Może zapytać o platformę, markę oprogramowania, czy model sprzętu. Pozwoli to na grupowanie użytkowników oraz na dostosowanie treści, ale nie pozwoli na masową agregację informacji.

Nadchodzą ciekawe czasy, w których żegnamy się ze standardami HTTP i tworzymy nowe - głównie dlatego, że twórcy sieci nie przewidzieli jej komercyjnego rozwoju i powszechności Internetu.

przeczytaj następny tekst


przeczytaj następny tekst


przeczytaj następny tekst


przeczytaj następny tekst


przeczytaj następny tekst