Mi az a HTTP?

Ha nagyon éles szemmel nézi a webcímeket a böngészője felső sávjában, valószínűleg észrevette már bármely weboldal címének legelső részét, a “HTTP” vagy “HTTPS” betűket. De mi is az a HTTP, és hogyan működik? Vessünk egy pillantást a ragasztóra, amely összetartja a webet.

HTTP: A rövid változat

A HTTP egy rövidítés, és a hipertext átviteli protokoll rövidítése. Bontsuk le egy kicsit, kezdve a “protokoll” résszel. A technika világában a protokoll azon szabályok összessége, amelyeket a gépeknek be kell tartaniuk ahhoz, hogy “beszélhessenek” egymással. Például a VPN protokollok határozzák meg, hogy a VPN-ek hogyan lépnek kapcsolatba a szerverekkel. A HTTP ennél sokkal kevésbé specifikus, és inkább az internet működésének szabályait határozza meg.

Ez nem túlzás. HTTP nélkül nem lenne kommunikáció a világhálón. Ez azért van így, mert a HTTP szabályozza a webkiszolgálók és a webes ügyfelek közötti kommunikációt - az “átvitel” részét. A webkiszolgálókhoz csatlakozhatsz, hogy webhelyeket tekinthess meg; például jelenleg az aWh webkiszolgálójával állsz kapcsolatban, hogy ezt a cikket elolvashasd.

A webkiszolgáló eléréséhez egy webkliensre van szüksége. Ez a kliens legtöbbször a böngésző, de igazából bármilyen alkalmazás lehet. Ha például a Facebook mobilalkalmazásból kattintottál erre a cikkre, akkor a Facebook alkalmazáson belüli böngészője az internetes kliensed. Az ügyfél-kiszolgáló kölcsönhatás nagyjából az egész internet lényege, és a HTTP ennek szerves részét képezi.

A HTTP rövidítés utolsó része a “hipertext” rész, amely a továbbított fájlok típusát jelenti, szinte mindig HTML fájlokon keresztül. Az ilyen típusú fájlok a web építőkövei, mivel nem csak nyelvet jelenítenek meg, hanem összekapcsolhatók is. Ez különbözik az eszközödön lévő fájltípusoktól, amelyek általában nem képesek erre.

A HTTP működése dióhéjban

A HTTP egy olyan protokoll, amely az internet úgynevezett alkalmazási rétegén fut, az internetes réteg fölött, ahol a web valódi elemei, például az IP-címek vannak. Az alkalmazási réteg az, ahol a böngészők és alkalmazások találhatók, amelyeket minden nap használ, és a HTTP nagymértékben része ennek a rétegnek.

Ez úgy működik, hogy a böngésző, az ügyfél HTTP-kérést küld a hálózaton keresztül, amelyet az elérni kívánt webhely kiszolgálója feldolgoz. A webhely ezután visszaküld egy HTTP-választ, amely - ha minden rendben ment - a kívánt oldal. A böngésző ezután megjeleníti a választ.

A HTTP kérelmek lebontása

Természetesen ennél egy kicsit többről van szó. Egy HTTP-kérés valójában több részből áll, amelyek mindegyike fontos szerepet játszik a webhely megjelenítésében. Minden kérés legfontosabb részei közé tartozik a HTTP-módszer, a kérés fejlécei és a kérés teste.

A módszer általában a HTTP által kért művelet, tehát az információ lekérése vagy szolgáltatása (a “GET”, illetve a “POST” parancsok, bár rengeteg más is létezik). A HTML-kérelem fejléceit kicsit nehezebb elmagyarázni, de gondoljunk rájuk úgy, mint borítékokra: mindegyik tartalmazza a címét, ahová az üzenet érkezik, a feladó címét, valamint egy csomó egyéb információt, például a postaláda típusát (böngésző), valamint a titkosításra vonatkozó információkat.

A HTML test “tölti” fel a borítékot olyan információkkal, mint a bejelentkezési adatok, vagy bármi más, amit a szervernek tudnia kell az oldal megjelenítéséhez; néha üres, és elég a boríték, a kérés fejléc.

HTTP válaszok

Miután a kérés beérkezett, a webkiszolgáló elkezd dolgozni a válaszon, amely szintén három részből áll: a HTTP státuszkódból, a válasz fejlécből és a válasz testéből. A fejléc és a test nagyban hasonlít a kérésekben szereplő társaikra, azzal a különbséggel, hogy a test sokkal több információt tartalmaz vissza, például a weblap megjelenítéséhez szükséges információkat hordozó fájlokat.

A státuszkódok egy érdekes érintés, mivel valószínűleg mindannyian találkoztunk már velük anélkül, hogy tudtuk volna, hogy mik azok. Ezek három számjegyből állnak, amelyek 1-5-ig terjedő számokkal kezdődhetnek. Mindegyik sorozat jelent valamit. Tehát bármelyik 2-vel kezdődő háromjegyű kód sikert jelent (az oldal gond nélkül megjelenik), míg a 4-es kód hibát jelent, mint például a hírhedt 404: page not found kód.

Ez a hívás-válasz rendszer az alapja mindannak, amit az interneten csinálunk. Bár a fent leírtaknál bonyolultabbá válik, ez az alapokat lefedi. Természetesen ott van még az a kérdés, hogy hogyan tartjuk biztonságban ezt a sok kommunikációt.

HTTP és a biztonság

Ez az a pont, ahol belefutunk a HTTP-vel kapcsolatos problémába: a HTTP semmilyen módon nem titkosítja vagy védi az információkat. Ez pusztán kérés és fogadás, nincs olyan lépés, ahol a biztonságot hozzáadnánk. Bárki, aki képes az üzenetek lehallgatására, láthatja, hogy mit küldenek, ami olyan dolgokat is tartalmaz, mint a hitelkártyaszámok vagy számlainformációk.

Bizonyos szempontból ez olyan, mint amikor a szomszéddal beszélgetsz a kerítésen keresztül, amely elválasztja a telkeket: mindenki a saját zónájában van, de ha valaki elég közel áll, minden szavadat hallhatja.

Amint azt el tudja képzelni, ez rendkívül rossz hír a legtöbb internetfelhasználó számára, és hihetetlenül jó hír azoknak, akik kihasználják őket. Ennek orvoslására a HTTP egy új típusát vezették be, a HTTPS-t, ahol az utolsó “S” a “biztonságos” szót jelenti. Ez a HTTP-típus titkosítja az információkat, így sokkal nehezebbé teszi, hogy bárki is belehallgasson, hogy úgy mondjam.

Jelenleg egyre ritkábban találkozhatunk a “sima” HTTP-nek nevezett weboldalakkal, mivel az elmúlt néhány évben szinte minden említésre méltó webhely átállt a HTTPS-re. Vannak olyanok, amelyek - az oldal tulajdonosától függően eltérő okokból - ellenálltak ennek a váltásnak. Ezeket érdemes elkerülni, vagy legalábbis VPN-t használni az érzékeny információk védelmére.

Mindezek mellett, bár a HTTPS mindenképpen létfontosságú frissítés, ez még mindig csak az eredeti megoldás foltozása. A HTTP az internetet a kezdetek óta működteti, és kétséges, hogy ez egyhamar megváltozik.