HTTP/2 - 3 Flashcards
Mi a HTTP/2?
- A HTTP szemantikájának egy optimalizált kifejezésmódja.
– Cél a hálózati erőforrások hatékonyabb használata és a végfelhasználó által megfigyelhető késleltetési idő csökkentése.
– Az egyik fő cél, hogy lehetővé tegye a kliensek számára, hogy csupán egy kapcsolatot kelljen fenntartaniuk egy szerverhez. - Ugyanazokat a metódusokat, állapotkódokat, fejlécmezőket és URI sémákat használja, mint a HTTP/1.1.
– Az üzenetek formálása és átvitele történik eltérő módon.
A HTTP/2 újdonságai
- Multiplexelés: megvalósítás adatfolyamok használatával.
– Az adatfolyamok túlnyomórészt egymástól függetlenek, így egy blokkolt vagy beragadt adatfolyam nem akadályozza az előrehaladást más adatfolyamokkal. - Forgalomvezérlés és rangsorolás: a multiplexelt adatfolyamok hatékony használatát biztosító mechanizmusok.
– A forgalomvezérlés biztosítja, hogy a fogadónak annyi adat kerül továbbításra, amennyit az kezelni tud.
– A rangsorolás biztosítja, hogy a korlátozottan rendelkezésre álló erőforrások először a legfontosabb adatfolyamokhoz rendelhetők hozzá. - Szerver push: lehetővé teszi a szervernek, hogy spekulatív módon küldjön olyan adatokat egy kliensnek, melyekre annak előreláthatólag szüksége lesz.
- Bináris protokoll: az üzenetek hatékonyabb feldolgozását teszi lehetővé az üzenetek bináris formálása.
- Fejlécmezők tömörítése (HPACK)
Üzenet multiplexelés, keretek
- Keret (frame): a legkisebb kommunikációs egység egy HTTP/2
kapcsolaton belül. - tobb streamre osztja az adatokat/headereket??
Adatfolyamok, jellemzőik, azonosításuk
- tobb egyidoju nyitott adatfolyamot tartalmazhat
- egyoldalu adatfolyamat letrehozasa, amit megosztva hasznalhatnak
- mindket vegpont lezarhatja
- szekvencialis feldolgozas
- 31 bites elojel nelkuli szam azonositja, ezek nem ujra felhasznalhatok
HTTP/2 kérés/válasz váltás
- minden http keres egy uj adatfolyamon megy, a szerver ugyan ezen valaszol
- ez utan az adatfolyam “elhasznalodik”
- a valaszt zaro kerekt lezarja az adatfolyamot
Fejlécmezők
- A fejlécmezők nevét kisbetűssé kell alakítani a HTTP/2 szerinti kódolásuk előtt.
Mi a HTTP/3?
- A HTTP legutóbbi fő verziója, mely a QUIC átviteli protokollon alapul.
- A HTTP szemantika leképezése a QUIC átviteli protokollra.
beágyazás
Beágyazás (inlining): képek közvetlen beágyazása CSS stíluslapokba.
spriting
Spriting: több kép kombinálása egyetlen képállományban.
sharding
Sharding: a tartalom elosztása több szerveren.
- Érdemes lehet például a képeket egy olyan külön webszerverről szolgáltatni, mely nem használ sütiket.
Content Delivery Network (CDN)
- Kapcsolódó fogalom: tartalomszállító hálózat, Content Delivery Network (CDN)
- CDN szolgáltatók:
– Azure Content Delivery Network https://azure.microsoft.com/en-us/products/cdn
– cdnjs https://cdnjs.com/
– Cloudflare https://www.cloudflare.com/
– Google https://cloud.google.com/cdn
– jsDelivr https://www.jsdelivr.com/ - lenyegeben fizikailag szetszort szerverek, amik duplikalt adatokat tartalmaznak, hogy gyorsabb legyen, kevesebb forgalommal
összefűzés
több CSS stíluslap és JavaScript
állomány összefűzése.
kicsinyítés
Kicsinyítés (minification): felesleges karakterek eltávolítása CSS stíluslapokból és JavaScript állományokból anélkül, hogy az erőforrás a böngésző általi feldolgozása módosulna.
pszeudo-fejlécmezők
- Kérés pszeudo-fejlécmezők:
– :method: a HTTP metódust tartalmazza.
– :scheme: a cél URI séma részét tartalmazza.
– :authority: a cél URI autoritás részét tartalmazza, a Host fejlécmező
megfelelője.- HTTP/2 kéréseket generáló kliensek számára az :authority pszeudo-fejlécmező használata ajánlott a Host fejlécmező helyett.
– :path: a cél URI útvonal és lekérdezés részét tartalmazza. - Szerver-szintű OPTIONS kéréseknél ‘*’ az értéke.
- HTTP/2 kéréseket generáló kliensek számára az :authority pszeudo-fejlécmező használata ajánlott a Host fejlécmező helyett.
- Válasz pszeudo-fejlécmezők:
– :status: a HTTP állapotkódot hordozza, minden válasznak tartalmaznia
kell.
Mi a QUIC
- Az UDP-re épülő biztonságos, általános célú átviteli protokoll.
- Kiejtés: quick