Tartalomjegyzék

< Web

HTTP

Bevezetés

A HTTP a HyperText Transfer Protocol szavakból alkotott betűszó. Hipermédiás adatok átvitelének protokollja.

A World Wide Web Consortium és az Internet Engineering Task Force együtt fejlesztik.

Három verzióját tartjuk számon, amelyből kettő lett szabvány, vagyis kettő rendelkezik valamilyen RFC szabvánnyal.

Az utolsó 1.1 verzióhoz két RFC is tartozik, mivel egyszer írtak hozzá egy kiegészítést. A 2.0 verziót a httpbis munkacsoport fejleszti a IETF-en belül. Alapul a SPDY és a HTTP Speed+Mobility áll rendelkezésre.

Az új HTTP2.0 szabvány a SPDY-ra épül, egy részét egy az egyben átvette. 2015 az HTTP2.0-s szabvány már túl is lép a SPDY keretein. Ezért a Chorome fejlesztői, SPDY nevet dobják és továbbiakban a HTTP2.0 specifikációt valósítják meg a Chrome-ban.

A HTTP kliens-szerver alapon működik, TCP felett, attól persze függetlenül.

Erőforrások

Amikor beírom a böngészőbe, hogy szit.hu a böngésző megpróbálja értelmezni. A böngészők általában arra következtetnek ebből, hogy http protokollon keresztül szeretnék elérni egy weboldalt, vagyis lefordítja https://szit.hu kérésre. Megjegyzem néhány böngészőgyártónál vannak olyan törekvések, hogy ha nem írjuk be a protokollt, akkor minősüljön keresésnek az alapértelmezett keresőszolgáltatással.

Erőforrás-mutató

Amikor leírom https://szit.hu, ez egy URL. Angolosan uniform resource locator, egységes erőforrás-mutató. Tehát tudhatjuk, hogy valamilyen webszerveren lévő erőforrásról van szó. Az erőforrások lehetnek szövegek, képek, videók és egyéb fájlok.

Az Interneten minden egy URL segítségével érhető el.

Ha azt írom http://freepascal.org szintén elérhető számomra egy webhely. Ha azt írom http://lazarus.freepascal.org egy másik webhelyhez jutok. A két weboldal lehet egymástól teljesen független.

De ha azt írom https://szit.hu/swbin/, akkor ugyanazon webhely egy újabb oldalát érem el.

Vegyük szemügyre a https://szit.hu/swbin/ URL-t. Három részre osztható:

A http után a :// csak szeparátor. Maga a http egy protokoll. Megmondjuk a böngészőnek, hogy http protokollt használjon. A böngészők általában más protokollt is ismernek. Ilyenek a https, vagy az ftp.

A szit.hu a tartománynév.

A /swbin/ egy útvonal a webhelyen belül.

Port

Az URL-ben megadható portszám is: https://szit.hu:80/swbin/ Megadható, hogy milyen porton várja a webszerver a http kéréseket. Az alapértelmezett port http esetén 80. Néhány böngésző ezt ki is törli. Mivel 80 az alapértelmezett port, ezért nem szoktuk beírni. A webmesterek néha más portot is használnak tesztelési, hibakövetési céllal.

Lekérő karaktersorozatok

Figyeljük meg a következő URL-t: https://szit.hu/doku.php?id=oktatas A kérdőjel után egy kérés van, angolosan query. A lekérő karaktersorozatok két név-érték párokból állnak, amelyet (&) jel karakterrel tagolunk:

név1=érték1&név2=érték2&névn=értékn

Töredékek

Vegyük a következő URL:

A https://szit.hu/doku.php?id=oktatas:grafika:svg:alapok weblap egy hosszabb weboldal. A végén a #svg_weblaon az oldal egy részére (egy töredékére) mutat. Ha van egy több képernyőoldalas weblapunk a böngésző a lap tetejét fogja nekünk megnyitni, ha nem jelezzük a töredékkel, hogy melyik részt szeretnénk látni.

Ez természetesen csak akkor lehetséges, ha webmester megjelölte az adott weboldal, adott részét.

URL általánosan

URI = "http:" "//" gép [ ":" port ] [ absz_útvonal [ "?" kérés ]]

Média típusok

Az Interneten több ezer különböző adattípus érhető el. A sok különböző típus átvitelére a MIME típusokat használunk. A MIME a Multipurpose Internet Mail Extendsions szavakból alkotott rövidítés. Eredetileg elektronikus levelezéshez találták ki, a különböző levelező rendszerek átjárhatósága érdekében. A MIME olyan sikeres lett, hogy adaptálták a HTTP protokollra is.

A webszerver minden HTTP objektumhoz egy MIME típust határoz meg. A böngésző a MIME típus alapján tudja eldönteni, hogyan kell megjeleníteni az érkező adatokat. Például le kell játszani videóként, vagy csak meg kell jeleníteni képként, vagy HTML oldalként kell értelmezni, vagy be kell hozzá tölteni egy kiterjesztést (plugint).

kliens <--  Content-type: image/jpeg Content-length: 34500   --- szerver

A MIME típus egy elsődleges objektumtípusból és egy másodlagos típusból áll. A kettőt egymástól (/) karakterrel választjuk el.

Néhány MIME típus
Típus Jelentés
text/plain ASCII szöveg
text/html HTML oldal
image/jpeg JPEG kép
image/gif GIF kép
image/png PNG kép
application/x-7z-compressed 7-Zip fájl
application/pdf PDF állomány
application/x-bittorrent Torrent fájl (.torrent)
application/vnd.openxmlformats-officedocument.wordprocessingml.template MS Word

Az IANA táblázat itt.

Üzenetek

A HTTP az Internet küldönce, a HTTP üzenetek csomagokban utaznak.

Az üzenetek folyama

A HTTP alkalmazások a üzeneteket blokkokra osztják. Ezek a blokkok metainformációkkal kezdődnek, amelyeket opcionálisan adatok követik. Ezek az üzenet folynak kliens és szerver között.

Az olyan szakszavak mint a inbound, outbound, upstream, downstream az üzenet folyásának irányát írják le. Az üzenetek inbound módon közlekednek a szerver fele, amikor a szerver válaszol outbound utaznak vissza.

Szokás még mondani, hogy a HTTP üzenetek lefolynak, azaz downstream, függetlenül attól, hogy kérés vagy válasz. Magát a küldőt nevezhetjük az alatta lévők upstream-jének.

Az üzenet szintaxisa

Az üzenetek kétfélék lehetnek. Kérés (request) és válasz (response).

A kérések mindig egy webszervernek szólnak. A webszerver mindig válaszol.

Egy kérés szintaktikailag így néz ki:

<metódus> <kérés URL> <verzió>
<fejrész>

<a törzs kezdete>

Egy válasz szintaktikailag így néz ki:

<verzió> <státusz> <indok>
<fejrészek>

<a törzs kezdete>

A HTTP alaptulajdonságai

Kérés

GET /hello.htm HTTP/1.0     (A kliens küld egy kérést)
HTTP/1.1 200 OK             (A szerver küld egy státuszsort)

Metódusok

A TRACE azért hasznos, mert a visszaküldött kérést ellenőrizni tudjuk, hogy a közbenső átjárók változtattak-e az elküldött adatokon.

Státuszkódok

A HTTP státuszkódjai öt kategóriába sorolhatók. A státuszkód segít megérteni a szervertől érkező válaszokat.

100-199 Információs kódok

100 továbbfolytatom
101 protokollcsere

200-299 Sikert jelölő kódok

200 ok
201 kész
202 elfogadva
203 nem hiteles információ
204 üres tartalom
205 rejtett tartalom
206 részleges tartalom

300-399 Átirányítást jelölő kódok

300 több választási lehetőség
301 átmenetileg átmozgatva
302 megvan
303 lásd máshol
304 nem változott
305 használj proxyt
307 átmenetileg átirányítva

400-499 Klienshibákat jelölő kódok

400 rossz kérés
401 azonosítás, felhatalmazás hiánya
402 előfizetőknek
403 tiltott
404 a szerver elérhető, de kért tartalom nem elérhető;
de lehet jövőben még elérhető lesz
405 a metódus nem engedélyezett
406 nem elfogadható
407 proxy azonosítás szükséges
408 időtúllépés
409 konfliktus
410 eltűnt, véglegesen megszűnt
411 hossz szükséges
412 előfeltétel nem teljesült
413 kérés túl nagy
414 az URL túl hosszú a kérésben
415 a média típusa nem támogatott
416 a keresett tartomány meghatározhatatlan
417 nem teljesített elvárás

500-599 Szerverhibákat jelölő kódok

500 hiba a szerveren belül
501 nincs megvalósítva
502 hibás átjáró
503 a szolgáltatás elérhetetlen
504 átjáró időtúllépés
505 a HTTP verzió nem támogatott

HTTP kapcsolatok

A HTTP kapcsolatok jellemzői TCP feletti kapcsolat, szerver kliens alapokon.

A TCP egy biztonságos csővezetéket biztosít a HTTP protokoll számára. A bájtok halmaza a TCP kapcsolaton keresztül megfelelő sorrendben megérkezik a másik oldalra.

A TCP folyamban az adatok több részre bontva utaznak IP csomagok formájában.

A HTTP titkosított variációja a HTTPS. A HTTP után az „S” betű, egy titkosító réteget jelent a HTTP és a TCP között.

Amikor a HTTP szeretne egy üzenet átvinni, az adatokból folyamot alkot, és megnyit egy TCP kapcsolatot. Az adatokat több részre osztjuk fel, majd átadjuk az IP verem számára. Az IP verem hozzáteszi a saját fejléc információit az egyes csomagokhoz. Egy IP csomag ezek után a következőket tartalmazza:

Az IP fejléc tartalmazza a forrás és cél IP címet. A TCP fejléc tartalmazza a portszámokat, néhány TCP jelzőt és az integritást ellenőrző számokat.

TCP kapcsolatok
kapcsolat forrás IP forrásport célcím célport
A 210.190.5.45 1025 195.200.150.1 80
B 212.90.4.45 1027 195.200.15.1 80
C 195.160.80.25 3045 195.200.150.1 80
D 195.160.80.25 3046 95.111.112.5 80

Felhasznált források

Irodalom

Linkek