Skip to content
Language:hu Author:Laborci Gergely
web-basics

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 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

  1. Mi a különbség a specifikáció és az implementáció között?
  2. Melyik közösség foglalkozik a HTTP szabványosításával, melyik a HTML-lel?
  3. Miért problémás, ha egy egyetemi szolgáltatás csak egyetlen böngészőben használható?
  4. Mi az az „élő szabvány”, és miben különbözik a számozott kiadásoktól?

Tanulási források

Teaches (2)

  • webszabványok
  • interoperabilitás