A lecke végére meg tudod különböztetni a szabványt, a specifikációt és az implementációt, ismered a három fontos szabványosító közösséget, és érted, miért érték a web számára az interoperabilitás és a nyílt szabvány.
Miért kellenek közös szabályok?
Ha egy egyetemi linket elküldünk valakinek, azt várjuk, hogy telefonon, laptopon, másik operációs rendszeren és lehetőleg másik böngészőben is megnyílik. Ez nem azért működik, mert minden eszköz egyforma, hanem mert a résztvevők közös szabályokat követnek. Az oldal készítője nem tudhatja, milyen eszközt használ a látogató; a közös szabályok adják azt a bizonyosságot, hogy ugyanaz a dokumentum mindenhol értelmezhető.
Szabvány, specifikáció, implementáció
A szabvány közösen elfogadott technikai szabályrendszer.
A specifikáció ennek részletes, írásos leírása.
Az implementáció egy konkrét program (böngésző, szerver, eszköz), amely a specifikációt igyekszik megvalósítani.
A szabvány a megfigyelhető viselkedést írja elő, nem a belső kódot. Így a Chrome, a Firefox és a Safari teljesen különböző programok, mégis ugyanazt a dokumentumot kell hasonlóan megjeleníteniük.
flowchart TB
S[Közös specifikáció] --> B1[Böngésző A]
S --> B2[Böngésző B]
S --> W[Webszerver]
B1 <-->|közös szabályok| W
B2 <-->|közös szabályok| W
Ki alkotja a szabványokat?
Közösség
Szerep
Tipikus példák
W3C
Webes ajánlások és irányelvek kidolgozása (1994-ben alapították)
akadálymentességi irányelvek, a stíluslapok nyelve
WHATWG (Web Hypertext Application Technology Working Group)
A böngészők által használt webplatform élő szabványai; 2004-ben alapították Apple, Mozilla és Opera képviselői
HTML, DOM, URL, Fetch
IETF (Internet Engineering Task Force)
Internetes protokollok szabványosítása; a kimenet az RFC-sorozat
HTTP, TLS
Egyik közösség sem „irányítja az internetet” központilag. Nyílt folyamatokat biztosítanak, amelyekben gyártók, fejlesztők, kutatók egyeztetnek. Az IETF például nyilvános vázlatokat (Internet-Draft) vitat meg munkacsoportokban, és „durva konszenzussal” (rough consensus), nem szavazással dönt, a végeredmény pedig RFC-számot kap. A HTTP leírása is ilyen: az RFC 9110 a HTTP-szemantikát írja le, a 9111 a gyorsítótárazást, a 9112 az HTTP/1.1 üzenetformátumát.
A WHATWG élő szabványokat (living standard) gondoz: a szöveg folyamatosan változik a visszajelzések és az új funkciók szerint, nem verziókban jelenik meg. Ezért a HTML ma nem „HTML 5”, hanem egy folyamatosan frissülő dokumentum.
Interoperabilitás
Az interoperabilitás azt jelenti, hogy különböző rendszerek együtt tudnak működni. A weben több szinten fontos:
ugyanaz az oldal több böngészőben használható;
egy szerver többféle klienssel kommunikál;
egy API-t különböző nyelven írt programok is elérhetnek;
a felhasználó nem kényszerül egyetlen gyártó világába.
Az interoperabilitás nem tökéletes: böngészők közti eltérések, eltérő funkciótámogatás és örökölt korlátok maradnak (ezekről a 3. fejezet szól). A szabványok és a nyilvános tesztek épp ezt csökkentik.
Nyílt szabvány és függőség
A nyílt szabvány dokumentációja bárki számára hozzáférhető, és elvileg bárki megvalósíthatja. Ez támogatja a versenyt és a hosszú távú hozzáférhetőséget. Ezzel szemben, ha egy megoldás kizárólag egy gyártó saját technológiájára épül, vendor lock-in (szolgáltatói függőség) alakulhat ki: nehéz másik szolgáltatóra vagy eszközre váltani, mert minden hozzá van kötve.
Nem azt jelenti, hogy minden szolgáltatást kerülni kell, amely egy gyártótól függ. Azt jelenti, hogy érdemes tudatosan mérlegelni: mi történik, ha a gyártó megszünteti, megdrágítja vagy megváltoztatja a szolgáltatást.
Végigvezetett példa: „Csak ebben a böngészőben működik”
Tegyük fel, hogy a Kurzuspont jelentkezési gombja csak egyetlen böngészőben működik, mert a fejlesztők egy abban elérhető, de nem szabványos funkcióra építettek. A hallgatók egy része nem tud jelentkezni. A probléma oka lehet hibás megvalósítás, nem szabványos technológia vagy kompatibilitási tesztelés hiánya. Egyetemi, közigazgatási vagy más fontos szolgáltatásnál ez különösen súlyos, mert kizárja a felhasználók egy részét.
A megelőzés: szabványos megoldások választása, a fontos funkciók több böngészőben való kipróbálása, és tartalék (fallback) működés tervezése arra az esetre, ha egy képesség hiányzik.
Gyakori tévhitek
Állítás
Pontosítás
„A szabvány megakadályozza az innovációt.”
A közös alap megkönnyíti, hogy az újítás széles körben használható legyen.
„Ha Chrome-ban működik, mindenhol működik.”
A böngészők támogatása és hibái eltérhetnek.
„A W3C törvényeket hoz.”
A W3C szabványokat és ajánlásokat dolgoz ki; a jogi kötelezettség más forrásból ered.
„A HTML 5 a legújabb verzió, amelyet majd a HTML 6 követ.”
A HTML a WHATWG élő szabványa, folyamatosan frissül.
Röviden
A szabvány szabályrendszer, a specifikáció a leírása, az implementáció a megvalósítás.
A W3C, a WHATWG és az IETF nyílt folyamatokban dolgozza ki a webes szabványokat.
Az interoperabilitás a web alapértéke, de nem tökéletes.
A nyílt szabvány csökkenti a függőséget, a vendor lock-in növeli.
Ellenőrző kérdések
Mi a különbség a specifikáció és az implementáció között?
Melyik közösség foglalkozik a HTTP szabványosításával, melyik a HTML-lel?
Miért problémás, ha egy egyetemi szolgáltatás csak egyetlen böngészőben használható?
Mi az az „élő szabvány”, és miben különbözik a számozott kiadásoktól?
Webszabványok és interoperabilitás
Célok
A lecke végére meg tudod különböztetni a szabványt, a specifikációt és az implementációt, ismered a három fontos szabványosító közösséget, és érted, miért érték a web számára az interoperabilitás és a nyílt szabvány.
Miért kellenek közös szabályok?
Ha egy egyetemi linket elküldünk valakinek, azt várjuk, hogy telefonon, laptopon, másik operációs rendszeren és lehetőleg másik böngészőben is megnyílik. Ez nem azért működik, mert minden eszköz egyforma, hanem mert a résztvevők közös szabályokat követnek. Az oldal készítője nem tudhatja, milyen eszközt használ a látogató; a közös szabályok adják azt a bizonyosságot, hogy ugyanaz a dokumentum mindenhol értelmezhető.
Szabvány, specifikáció, implementáció
A szabvány a megfigyelhető viselkedést írja elő, nem a belső kódot. Így a Chrome, a Firefox és a Safari teljesen különböző programok, mégis ugyanazt a dokumentumot kell hasonlóan megjeleníteniük.
flowchart TB S[Közös specifikáció] --> B1[Böngésző A] S --> B2[Böngésző B] S --> W[Webszerver] B1 <-->|közös szabályok| W B2 <-->|közös szabályok| WKi alkotja a szabványokat?
Egyik közösség sem „irányítja az internetet” központilag. Nyílt folyamatokat biztosítanak, amelyekben gyártók, fejlesztők, kutatók egyeztetnek. Az IETF például nyilvános vázlatokat (Internet-Draft) vitat meg munkacsoportokban, és „durva konszenzussal” (rough consensus), nem szavazással dönt, a végeredmény pedig RFC-számot kap. A HTTP leírása is ilyen: az RFC 9110 a HTTP-szemantikát írja le, a 9111 a gyorsítótárazást, a 9112 az HTTP/1.1 üzenetformátumát.
A WHATWG élő szabványokat (living standard) gondoz: a szöveg folyamatosan változik a visszajelzések és az új funkciók szerint, nem verziókban jelenik meg. Ezért a HTML ma nem „HTML 5”, hanem egy folyamatosan frissülő dokumentum.
Interoperabilitás
Az interoperabilitás azt jelenti, hogy különböző rendszerek együtt tudnak működni. A weben több szinten fontos:
Az interoperabilitás nem tökéletes: böngészők közti eltérések, eltérő funkciótámogatás és örökölt korlátok maradnak (ezekről a 3. fejezet szól). A szabványok és a nyilvános tesztek épp ezt csökkentik.
Nyílt szabvány és függőség
A nyílt szabvány dokumentációja bárki számára hozzáférhető, és elvileg bárki megvalósíthatja. Ez támogatja a versenyt és a hosszú távú hozzáférhetőséget. Ezzel szemben, ha egy megoldás kizárólag egy gyártó saját technológiájára épül, vendor lock-in (szolgáltatói függőség) alakulhat ki: nehéz másik szolgáltatóra vagy eszközre váltani, mert minden hozzá van kötve.
Nem azt jelenti, hogy minden szolgáltatást kerülni kell, amely egy gyártótól függ. Azt jelenti, hogy érdemes tudatosan mérlegelni: mi történik, ha a gyártó megszünteti, megdrágítja vagy megváltoztatja a szolgáltatást.
Végigvezetett példa: „Csak ebben a böngészőben működik”
Tegyük fel, hogy a Kurzuspont jelentkezési gombja csak egyetlen böngészőben működik, mert a fejlesztők egy abban elérhető, de nem szabványos funkcióra építettek. A hallgatók egy része nem tud jelentkezni. A probléma oka lehet hibás megvalósítás, nem szabványos technológia vagy kompatibilitási tesztelés hiánya. Egyetemi, közigazgatási vagy más fontos szolgáltatásnál ez különösen súlyos, mert kizárja a felhasználók egy részét.
A megelőzés: szabványos megoldások választása, a fontos funkciók több böngészőben való kipróbálása, és tartalék (fallback) működés tervezése arra az esetre, ha egy képesség hiányzik.
Gyakori tévhitek
Röviden
Ellenőrző kérdések
Tanulási források