Skip to main content

7M. Tétel: Web

A web működésének alapjai.

  • Az erőforrások azonosítása URI-nak nevezett globális azonosítókkal történik.
  • A web ágensek szabványos protokollok segítségével kommunikálnak, melyek üzenetcserén alapulnak.
    • Pl: HTTP, HTTPS
  • Egy üzenet tartalmazhat adatokat valamint metaadatokat az erőforrásról, az üzenet adatokról és magáról az üzenetről.
  • A protokoll korlátozza az átvihető reprezentáció adatok és metaadatok formátumát.
  • A web maga nem korlátozza a tartalomszolgáltatók által használható adatformátumokat. Példa

Web szabványok és szabványügyi szervezetek.

  • Szabvány egy olyan dokumentum, mely a követelményeket, előírásokat, irányelveket vagy jellemzőket fogalmaznak meg, melyek következetesen használhatóak annak biztosítására, hogy anyagok, termékek, folyamatok és szolgáltatások megfeleljenek a rendeltetésüknek.
  • Fajtái:
    • De facto szabványok
      • Gyakori használatból vagy piaci elfogadottságból származnak.
      • Pl: QWERTY, PDF
    • De jure szabványok
      • Helyi, állami és/vagy nemzetközi szintű szabályzók által kötelezőként előírt szabványok.
      • Pl: SI mértékegységrendszer
    • Önkéntes közmegegyezéses szabványok
      • Különböző magánintézmények által megharátozott szabványok
      • Pl: internet protokollkészlet TCP/IP
  • Szabványügyi szervezetek:
    • ISO
    • IETF
      • ők fejlesztik a TCP/IP protokollt
    • WHATWG
      • Web fejlődése iránt elkötelezett közösség
    • W3C
      • alkalmazottak és a nyilvánosság fejlesztik a webes szabványokat
  • RFC:
    • Az RFC sorozat az Internetről szóló műszaki és szervezeti dokumentumokat tartalmaz.
    • Minden RFC-t egy szám azonosít.
    • A már kiadott RFC-k sosem módosulnak.
    • Hibákat hibajegyzékkel javítják.

URI-k és felépítésük.

  • Az URI jelentése:
    • egységes erőforrás azonosító
    • Absztrakt vagy fizikai erőforrást azonosító tömör karaktersorozat.
  • Minden URI egy sémanévvel kezdődik, melyet egy “:” karakter választ el a séma-specifikus részétől.
  • Közismert URI sémák:
    • file:
    • http/https:
  • Hivatkozás-feloldás:
    • Az URI által azonosított erőforráshoz való hozzáférést jelenti.
  • Történelmileg 2 fajta URI van:
    • URL (egységes erőforrás-helymeghatározó)
      • Meghatározza, hogy az erőforrást miként lehet elérni
      • Pl: hu.wikipedia.org
    • URN (egységes erőforrás-név)
  • URI karakterek
    • Fenntartott karakterek:
      • ‘:’,’?’,’#’, zárójelek stb..
    • Nem fenntartott:
      • Kis,nagy betűk, számok, pont, vonal, also vonal
  • URI szintaxis:
    • Komponensek felsorolása balról jobbra haladva fontosság szerint
    • Általános szintaxis:
      • Séma ‘:’ hierarchikus-rész [‘?’ lekérdezés][‘#’ erőforrásrész]
      • A hierarchikus rész egy autoritás és egy útvonal komponenst tartalmazhat
        • ‘//’ autoritás útvonal vagy útvonal
        • Ha van autoritás rész, akkor az útvonal vagy üres vagy ‘/’ kezdődik
      • Pl: https://wordery.com/search?term=scotland#header
      • https séma neve
      • wordery.com autoritás
      • search útvonal
      • ?term=scotland lekérdezés
      • #header erőforrás rész
    • Autoritás komponens:
      • [userinfo ‘@’] host [‘:’ port]
      • Http alapértelmezett portja a 80
    • Útvonal komponens:
      • ‘/’ karakterrel elválasztott sorozata
      • Az első ‘?’ vagy ‘#’ karakterig, ezek hiányában az URI végéig tart.
      • Útvonal része lehet a ‘.’ vagy a ‘..’
    • Lekérdezés komponens:
      • A ‘?’ karakter jelzi az elejét, a ‘#’ karakterig, annak hiányában az URI végéig tart.
      • Gyakran név ‘=’ érték formájú, ‘&’ karakterekkel elválasztott név-érték párokat tartalmaz.
    • Erőforrás rész:
      • A ‘#’ karakter jelzi az elejét, az URI végéig tart.
      • Lehetővé teszi egy másodlagos erőforrás közvetett azonosítását egy elsődleges erőforrásra történő hivatkozáson keresztül.
        • Ez lehet az elsődleges erőforrás egy része.
      • Jelentését az elsődleges erőforrás elérése során kapott lehetséges reprezentációk határozzák meg.

HTTP: kérések és válaszok felépítése, metódusok, állapotkódok, tartalomegyeztetés, sütik.

HTTP: kérések és válaszok felépítése:

  • Kérések és válaszok sorozatát a kliens és a szerver között munkamenetnek nevezzük.
  • Kérések és válaszok felépítésüket tekintve az első sorban térnek el egymástól, ez a kezdősor.
  • A kezdősor után nulla vagy több fejlécmező következik, melyek mindegyikét CRLF követi.
  • Egy üres sor jelzi a fejléc szakasz végét (CRLF).
  • Opcionálisan szerepelhet az üzenet végén egy üzenettörzs.
  • Egy kérés kezdősora az alábbi felépítésű:
    • Metódus kérés-cél HTTP-verzió CRLF
    • Pl: GET /licenses/ HTTP/1.1
  • A kérés-cél leggyakoribb formája:
    • útvonal [‘?’ lekérdezés]
      • Ha a cél URI nem tartalmaz útvonalat, akkor a kliens ‘/’ -t kell, hogy küldjön útvonalként.
      • A cél URI host és port komponense a Host fejlécmezőben kerül továbbításra.
      • Pl: GET /copyleft/gpl.html HTTP/1.1
  • Kizárólag OPTIONS metódus esetén megadható ‘*’ kérés-célként
    • Pl: OPTIONS * HTTP/1.1
  • Az üzenet első sorát állapotsornak nevezzük, felépítése:
    • HTTP-verzió állapotkód indok_frázis CRLF
    • Pl: HTTP/1.1 200 OK

HTTP metódusok:

  • GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE
  • GET:
    • Információ lekérési célokra szolgál.
    • A cél erőforrás egy aktuális kiválasztott reprezentációjának átvitelét kérelmezi.
  • HEAD:
    • Azonos a GET metódussal, azonban a szerver nem küldhet üzenettörzset a válaszban.
    • Metaadatok szerzésére használható úgy, hogy a reprezentáció adatok nem kerülnek átvitelre.
  • POST:
    • Azt kérelmezi, hogy a cél erőforrás dolgozza fel a kérésben mellékelt reprezentációt a saját szemantikájának megfelelően.
  • PUT:
    • Azt kérelmezi, hogy a szerver hozza létre vagy helyettesítse a cél erőforrás állapotát a kérésben mellékelt reprezentáció által definiált állapottal.
  • DELETE:
    • Azt kérelmezi, hogy az eredet szerver törölje a cél erőforrás és aktuális funkcionalitása közötti kapcsolatot.
  • OPTIONS:
    • A cél erőforrás kommunikációs opcióiról rendelkezésre álló információkat kér.
    • Cél erőforrásként ‘*’ általában a szervert jelenti, nem pedig egy meghatározott erőforrást.
  • TRACE:
    • A kérés visszaküldését kérelmezi.
  • A metódusnevek kis-nagybetű érzékenyek.
  • Minden általános célú szervezetnek támogatnia kell a GET és a HEAD metódusokat, az összes többi metódus opcionális.
  • Az 501 (Not implemented) állapotkód azt jelzi egy válaszban, hogy az eredet szerver nem ismeri fel vagy nem implementálja a kérés metódusát.
  • A 405 (Method Not Allowed) állapotkód azt jelzi egy válaszban, hogy az eredet szerver ismeri ugyan a metódust, de a cél erőforrás nem támogatja azt.

HTTP állapotkódok:

  • Háromjegyű decimális egész számok.
  • Az első számjegy az állapotkód fajtáját határozza meg.
  • A kliensnek nem kell megérteniük minden regisztrált állapotkód jelentését, azonban kötelező az állapotkód fajtájának megértése az első számjegy alapján.
  • Fajtái:
    • 1xx: Informational (információs)
    • 2xx: Success (siker)
    • 3xx: Redirection (átirányítás)
    • 4xx: Client Error (kliens hiba)
    • 5xx: Server Error (szerver hiba)

HTTP tartalomegyeztetés:

  • Egy eredet szerver számára egy erőforráshoz több, annak jelenlegi állapotát tükröző reprezentáció állhat rendelkezésre, vagy képes lehet több reprezentáció előállítására.
    • Pl: eltérő nyelv vagy kódolás, eltérő felhasználói igények
  • A tartalomegyeztetés egy olyan mechanizmus, mely révén kiválasztható egy adott kéréshez legmegfelelőbb reprezentáció.
  • Lehet:
    • Proaktív:
      • Szerver választja ki a reprezentációt a felhasználói ágens preferenciái alapján. (szerver vezérelt)
      • Előnyös:
        • Ha nehéz leírni egy felhasználói ágensnek a rendelkezésre álló reprezentációk közüli választás algoritmusát.
      • Hátránya:
        • Lehetetlen a pontos meghatározás, mit szeretne az ágens.
    • Reaktív:
      • A szerver választásra kínálja fel a felhasználói ágensnek a reprezentációk listáját. (ágens vezérelt)
      • Előnyös:
        • Amikor az eredet szerver nem képes a felhasználó ágens képességeinek megállapítására.
      • Hátránya:
        • Miután megkapta az alternatív reprezentációk listáját, a felhasználó ágensnek egy újabb kérést kell végrehajtania ahhoz, hogy megkapja a kívánt reprezentációt.

HTTP sütik:

  • A süti egy név-érték pár és kapcsolódó metaadatok melyeket egy eredet szerver egy válasz Set-Cookie fejlécmezőjében küld a felhasználó ágensnek.
  • Az attribútumok segítségével az eredet szerver egy hatáskört határozhat meg a sütihez.
  • A felhasználói ágens a további kérésekben a név-érték párt a Cookie fejlécmezőben küldi vissza az eredet szervernek.
  • Felhasználás:
    • Munkamenet kezelés
    • Testreszabás
    • Felhasználó követés
  • Amikor a felhasználói ágens egy Set-Cookie fejlécmezőt kap, eltárolja az attribútumaival együtt.
  • A továbbiakban amikor a felhasználói ágens egy HTTP kérést hajt végre, a Cookie fejlécmezőbe illeszti az alkalmazható, nem lejárt sütiket.
    • Csak a név-érték párokat, az attribútumokat nem!
  • Ha a felhasználói ágens egy olyan új sütit kap, melynek neve, valamint Domain és Path attribútuma megegyezik egy már tárolt sütiével, akkor az új sütire cseréli ki a korábbit.
  • Süti attribútumai:
    • Expires
    • Domain
    • Path
    • Secure
    • HttpOnly
    • Max-Age
  • Süti élettartamát jelzik:
    • Expires: a süti lejárati dátumát adja meg.
    • Max-Age: azt adja meg, hogy hány másodperc múlva jár le a süti.
      • Azok a sütik, melyek rendelkeznek az expires vagy max-age attribútumokkal, perzisztens sütiknek nevezzük, mert több munkameneten keresztül megtartja ezeket az ágens.
      • Ha egy sütinek mindkettő van, akkor a Max-Age élvez elsőbbséget.
      • Ha egy sütinek egyik sincs, akkor a munkamenet végéig tartja meg a sütit.
  • Domain:
    • Meghatározza, hogy a süti melyik szervernek lesz elküldve.
    • Ha az adott oldal felé HTTP kéréseket intéz az ágens, akkor a sütit a Cookie fejlécmezőbe illeszti.
  • Path:
    • A süti hatáskörét adott útvonalakra korlátozza.
  • Secure:
    • A süti hatáskörének biztonságos csatornákra korlátozása.
  • HttpOnly:
    • HTTP kérésekre korlátozza a süti hatáskörét.
    • Arra korlátozza a sütit, hogy ne tegye elérhetővé a kliens oldali API-k számára.
  • Sütik kezelése:
    • A felhasználói ágenseknek törölniük kell a lejárt sütiket.
    • A munkamenet végén az összes nem perzisztens sütit törölni kell.
    • Ajánlott a felhasználó számára lehetővé tenni a tárolt sütik kezelését és törlését.

A web jelölőnyelvei: XML és HTML dokumentumok felépítése.

  • XML:
    • Általános célú jelölőnyelv.
    • Szerkezeti alkotórészek definiálása címkékkel történik.
    • Nincs előre definiált címkekészlete
    • Célja az adatok leírása.
    • Nyílt és gyártófüggetlen, platformfüggetlen, kiterjedt infrastruktúra.
    • Univerzális adatcsere formátum.
    • Bőbeszédű és nehézkes szintaxis.
    • Nagy tárigény.
    • Bonyolult, sok a specifikáció.
    • Dokumentum központú XML:
      • Lényeges az elemek sorrendje.
      • Dokumentumokat jelölésekkel megtűzdelt folyó szöveg alkotja.
      • Emberi fogyasztásra szánt.
        • Pl: XHTML
    • Adatközpontú XML:
      • Dokumentumokat nagyszámú adatelem alkotja.
      • Kevésbé véletlenszerű dokumentum-szerkezet.
      • Elemek sorrendje kevésbé lényeges.
      • Gépi fogyasztásra szánt
        • Pl: SVG
  • HTML:
    • Előre definiált címkekészlet.
    • Célja információ megjelenítése.
    • Tekinthető az xml egy speciális alkalmazásának (XHTML)

Stíluslap nyelvek.

  • Strukturált dokumentumok (Pl: HTML és XML) megjelenítésének leírására szolgáló stíluslap nyelv.
  • Szétválasztja a dokumentumok megjelenítési stílusát a dokumentumok tartalmától.
    • Egyszerűsítve a webszerkeztést.
  • CSS-nek szintjei vannak, nem verziói
    • Level 1
      • elavult
    • Level 2
      • Fejlesztés alatt.
    • Level 3
      • Fejlesztés alatt
      • Moduláris felépítésű
  • Karakterek:
    • Unicode karakterkészletet használ
    • Megadásához használhatjuk a /hhhhhh vezérlősorozatot
    • Legfeljebb 6 karakter, ha kevesebb, akkor whitespace karaktert rakjunk a végére
  • Dobozmodell:
    • A CSS egy fa struktúrájú dokumentumok kap, melyet egy rajzvásznon jelenít meg, ezzel egy dobozfát előállítva. Példa
  • CSS tulajdonságok:
    • CSS által definiált paraméterek, melyekkel a dokumentumok megjelenítése vezérelhető.
    • Pl: background-color
  • Deklarációs blokk:
    • ‘{’ és ‘}’ karakterek határolják.
    • Tulajdonságnév : érték formájúak
    • Deklarációkat ‘;’ választja el
  • At szabályok:
    • Stíluslap feldolgozását vezérlik.
    • Pl: @import
  • Értékek:
    • Azonosítók
    • Sztringek
    • URL-ek
    • Számok
    • Stb
  • Kiválasztók:
    • Meghatározzák, hogy mely szabály mely elemekre vonatkozik
    • Egyszerű kiválasztó:
      • Egyetlen típus kiválasztó
        • Pl: div
      • Általános kiválasztó
        • Pl: *
      • Attribútum kiválasztó
        • Pl: [att], [att=érték]
      • Osztály kiválasztó
        • Pl: .érték
      • Id-kiválasztó
        • Pl: #azonosító
      • Pszeduo-osztály
        • Pl: :azonosító, :azonosító(érték)
    • Kombinátorok:
      • Whitespace
      • ‘>’
      • ‘+’
      • ‘~’
  • Stíluslap eredete:
    • Felhasználó ágenstől (böngészőtől) származó stíluslap
    • Felhasználótól származó stíluslap
      • Megadhat saját stíluslapot
        • Pl: fogyatékkal élőnél
    • A dokumentum szerzőjétől származó stíluslap
      • HTML estetén a link fejléc elemmel adható meg

JSON.

  • Könnyűsúlyú szöveges nyelvfüggetlen adatcsere formátum.
  • Strukturált adatok ábrázolására szolgál.
  • Ember számára is könnyen olvasható és írható.
  • Szoftverek által könnyen generálható és feldolgozható.
  • Állománynév végződés:
    • .json
  • XML alternatívájaként használható.
  • Ugyanazokat az előnyöket kínálja, viszont annak hátrányai nélkül.
  • JSON adat-orientált, nem annyira bőbeszédű, adatszerkezetek ábrázolásához tökéletes választás.
  • XML inkább dokumentum-orientált.
  • Négy primitív adattípus ábrázolását teszi lehetővé:
    • Sztringek
    • Számok
    • Logikai értékek
    • Null
  • Az alábbi két strukturált típus ábrázolását teszi lehetővé:
    • Tömbök
    • Objektumok
  • JSON szöveg tokenek sorozata.
  • Tokenek:
    • Szerkezeti tokenek a {,}, [,], és , karakterek
    • Sztringek
    • Számok
    • Literális tokenek true, false, null
  • Tokenek előtt és után megengedhető a whitespace karakter