Skrevet af Steven Vaughan-Nichols, Senior Contributing Editor
Steven Vaughan-Nichols Senior Contributing Editor
Steven J. Vaughan-Nichols, aka sjvn, har skrevet om teknologi og teknologiens forretning, siden CP/M-80 var det banebrydende pc-operativsystem; 300bps var en hurtig internetforbindelse; WordStar var den nyeste tekstbehandler; og vi kunne lide det.
Fuld biografi Udgivet i Netværk den 16. februar 2022 | Emne: Netværk
Snart udgiver både Google Chrome, den mest populære af alle webbrowsere, og Firefox-webbrowseren deres 100. version. Udover at være et fedt nummer, er der tekniske problemer, der følger med disse jubilæumsudgivelser. Nogle af disse problemer kan få dine websteder til at fejle.
Ja, mislykkes. Her er hvorfor.
Alle webbrowsere leveres med en User-Agent (UA). Dette er en streng, som browsere sender i HTTP-headere, så servere kan identificere browseren. JavaScript bruger det også sammen med JavaScript navigator.userAgent. Webudviklere bruger UA på alle mulige måder med deres serverside-programmer. UA's format er:
browserName/majorVersion.minorVersion
Som denne skrevne typiske eksempler på de seneste udgivelsesversioner af browsere er:
Chrome: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, ligesom Gecko) Chrome/94.0.4606.54 Safari/537.36
Firefox: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:96.0) Gecko/20100101 Firefox/96.0
Så hvad er problemet her? Det er en gammel en: Fejlkonfigurationer af datoformat. Det mest berømte eksempel er det stadig ikke helt døde endnu Y2K-problem. Så var problemet, at de fleste programmer i slutningen af 90'erne og tidligere ikke kunne håndtere fire-cifrede årstal. Denne gang er vores problem, at for mange webstedsprogrammer ikke kan håndtere trecifrede UA'er. Ja, så enkelt er det.
Men selvom det kan være enkelt, betyder det ikke, at det er uvæsentligt. Du kan se, vi har allerede haft en snigpremiere på dette problem, da vi gik fra 1-cifrede UA'er (1-9) til 10-cifrede UA'er. For eksempel ville Opera 10 ikke gengive websteder korrekt tilbage i 2009, og nogle websteder ville slet ikke gengives med Firefox 10, fordi deres scripts læste Firefox 10 som den forældede Firefox 1.0. Vi kan forvente alt dette og mere, efterhånden som Chrome og Firefox 100 ankommer.
Google og Mozilla er udmærket klar over disse kommende browser UA-problemer. Begge arbejder på at finde og rette op på hovedpinen.
Nogle af disse problemer vil undslippe deres indsats. For eksempel, mens det har været kendt i årtier, at det er en dårlig idé at bruge UA'er til at bestemme, hvilke websider eller tjenester der skal serveres til en bestemt browser, har det aldrig forhindret alt for mange webudviklere i at misbruge dem alligevel. Hvis dit websted gør dette, er der gode chancer for, at dit websted ender med at sende en fejlmeddelelse i stedet for websider til en version 100-webbrowser.
Du kan tjekke i dag, om dit websted har et sådant problem ved hjælp af en Chrome funktionsflag, som tvinger Chrome til at sende en trecifret UA. Derefter kan du kontrollere, om den nye UA bliver præsenteret korrekt, ved at besøge testsiden, Er Chrome 100 endnu? Så kan du bruge denne browser til at tjekke dine egne websteder for problemer. Firefox tilbyder også lignende tests.
Med begge browsere, hvis du finder, at noget går i stykker på grund af UA, før du løser det, skal du indsende en rapport på Webcompat. Sørg også for at tjekke, at du ikke har afsløret en anden form for fejl ved at tjekke, om problemet stadig dukker op, når du bruger den normale UA.
I tilfælde går det mere dårligt end enten Chrome eller Firefoxs ingeniørteam forventer, at begge har afhjælpningsplaner på plads.
I Firefox er der en indgrebsmekanisme for webstedet. Med dette kan Mozilla webcompat-teamet hotfixe ødelagte websteder. For at se, hvad der bliver rettet, kan du skrive about:compat i URL-linjen. Og selvfølgelig, hvis et websted går i stykker, fordi det ikke kan håndtere, at hovedversionen er 100, kan en bruger rette det ved at sende version 99 i stedet for. Men det er alt for meget at bede om, at almindelige brugere manuelt ændrer deres UA'er. Hvis det går helt galt, og der er udbredte webstedsfejl, planlægger Mozilla midlertidigt at fryse Firefox's hovedversion ved 99 og teste andre metoder.
Med Chrome er backup-planen at bruge et flag til at fryse hovedversionen ved 99 og rapportere det reelle hovedversionsnummer i den mindre versionsdel af UA-strengen. Denne reservekode er allerede tilgængelig i Chromes upstream open source Chromium-browser.
I dette tilfælde vil Chrome-versionens UA-streng bruge følgende mønster <major_version>.<minor_version>.<build_number>.<patch_number>. Så for eksempel kan den vigtige del ligne 99.101.4988.0. Googles Chrome-udviklere vil beslutte, om de vil ty til denne backup-mulighed, hvis det går galt.
Hvis du vil hjælpe med at gøre dette problem til et ikke-problem – grunden til, at folk troede, at Y2K ikke var så stor en sag, var på grund af alle de anstrengelser, der var gjort på forhånd for at sikre, at det var korrekt løst- -både Google og Mozilla vil gerne modtage din hjælp. Og selvfølgelig vil din egen virksomhed sætte pris på at sørge for, at dens hjemmeside ikke går op i røg, når version 100-udgaverne frigives.
Du kan gøre dette ved at konfigurere din browser til tidlig udgivelse til at rapportere versionen som 100 og rapportere eventuelle problemer, du støder på. Sådan gør du dette.
Konfigurer Firefox Nightly til at rapportere hovedversionen som 100
Åbn Firefox Nightly's Settings-menu.
Søg efter “Firefox 100”, og tjek derefter “Firefox 100 User-Agent String”.
Konfigurer Chrome til at rapportere hovedversionen som 100
Gå til chrome://flags/#force -major-version-to-100
Indstil indstillingen til “Aktiveret”.
Før du starter, skal du huske på, at der allerede er fundet flere UA-strengfejl.
Hvis du er en webudvikler, der bruger et gammelt UA-parsingbibliotek, bør du teste for at sikre, at det kan håndtere UA-versioner større end eller lig med 100. Tidlige test viser, at de seneste biblioteker vil klare sig fint . Men som vi alle ved, er nettet fyldt med gammel kode. Så det er alt for muligt, at du bruger et gammelt, inkompatibelt parsingbibliotek og ikke engang ved om det, før de hikker på de nyeste browsere, så dine brugere undrer sig over, hvad pokker lige skete.
Det er tid til at Kom igang med at arbejde. Chrome 100 forventes at blive frigivet i marts 2022, og Firefox 100 er planlagt til at blive udgivet den 3. maj 2022. Inden da vil du gerne sikre dig, at dine websteder fungerer, som du forventer, at de kommer i dag,
Relaterede historier:
Sådan gør man Google Chrome til mindre et batterisvin på din bærbare computerGoogle siger, at næsten 9 millioner USD uddeles i 2021-sårbarhedsbelønninger. Hvad med Firefox? Open Source | Sky | Internet of Things | Sikkerhed | Datacentre