A HTTP (HyperText
Transfer Protocol) a Web eredendő protokollja. A kiszolgálók és a böngészők
a HTTP protokollt használják arra, hogy Web-dokumentumokat küldjenek
az Interneten keresztül. A HTTP továbbá megtartja a multimédiás fájlok
integritását. A HTTP továbbítja a képeket, grafikákat, video- és audioklipeket,
a hiperhivatkozások szövegét és más adatokat a Weben. Amikor közelebbről
szemügyre vesszük a HTTP-t, nem feledkezhetünk meg arról, hogy az Internet
az a szállítóeszköz, ami a Web alatt helyezkedik el. Ezért úgy tekintsünk
a HTTP-re, mint ami a TCP/IP protokollkészlet fölött helyezkedik el.
A HTTP a Web eredendő protokollja Amikor szörfözünk a Weben, akkor a böngészőnk a háttérbent üzeneteket cserél a Web- kiszolgálókkal a HTTP protokoll segítségével. Minden olyan esetben, amikor egy hiperhivatkozásra kattintva az egyik erőforrásról átlépünk egy másik erőforrásra, a HTTP-t használja a böngészőnk arra, hogy elérje a kért erőforrást tartalmazó kiszolgálót. Ahhoz, hogy megértsük, hogyan cserélik ki a böngészők és a kiszolgálók a Web-dokumentumokat a HTTP segítségével, először meg kell vizsgálnunk a különböző dokumentumtípusokat. A különböző dokumentumformátumokat szabványok írják le, az általunk használt Web-dokumentumok formátumait a MIME (Multipurpose Internet Mail Extension) specifikáció írja elő.
A MIME A
MIME (Multipurpose Internet Mail Extension) műszaki specifikációt jelent,
ami azt írja elő, hogy miképpen továbbíthatók multimédiás adatok az
Internet levelezőszabványaival. A MIME létezése előtt egy másik műszaki
specifikáció létezett, amely leírta a számítógépek között továbbítandó
szöveges üzenetek (az úgynevezett e-mail) szintaxisát. Ezeknek a szöveges
üzeneteknek az átvitele azonban meglehetősen korlátozva volt, mert nem
volt olyan szabványa, amely lehetővé tette volna multimédiás információk
átvitelét.
A MIME használata a Web-en Amint tudjuk, a Web egymással összekapcsolt dokumentumok millióibói áll. Mindegyik dokumentum további fájlokra hivatkozhat, amelyek grafikát, audio- és videoklipeket, szöveget és más egyebeket tartalmazhatnak. Amikor egy Web-kiszolgáló egy fájlt vagy dokumentumot küld az Interneten keresztül egy böngészőnek (vagy valamilyen más ügyfélprogramnak), akkor a kiszolgáló a fájl típusát leíró információt beilleszti egy MIME fejlécbe. A fájlt fogadó program az ebben a fejlécben található információk alapján határozza meg az ezt követő adatok típusát (a fájl típusát). Általánosságban fogalmazva egy fejléc (head) a fájl elejéhez illesztett információ, az ezt követő fájl pedig a törzs (entity body). A törzs jelenti azt a fájlt vagy dokumentumot amit a , kiszolgáló elküld. Van olyan eset is, amikor egy program csak a fejlécet küldi el, anélkül, hogy törzset csatolna hozzá. Továbbá a MIME segítségével egyetlen törzsön belül több dokumentumot is elküldhetünk.
A MIME típusai és alaptípusai Egy Web-kiszolgáló az ügyfélnek elküldött minden egyes fájl fejlécébe felvesz egy MIME típust és altípust. Egy MIME típus azokat az általános fájlcsoport-típusokat írja le, amelyekkel dolgozunk. Ehhez hasonlóan egy MIME altípus azt hozza az ügyfél tudomására, hogy a fájlnak az adott általános fájlcsoport-típuson belül mi a konkrét típusa. Mivel a MIME folyamatosan követi és támogatja az újabb és újabb fájlformátumokat és alkalmazásokat, a MIME típusai és altípusai gyakran változnak.
A MIME típusát
és altípusát a Content-type (tartalom típusa) fejlécmezőben találjuk
meg, ami egy Web-kiszolgáló által az Interneten egy böngészőnek elküldött
üzenet elején helyezkedik el. Ahhoz, hogy megértsük, hogyan használja
a MIME a típusokat és az altípusokat, először meg kell ismernünk azokat
a Web-összetevőket, amelyeket a MIME használ. A Web-böngészők és kiszolgálók
MIME típusokat és altípusokat használnak. Amikor egy Web-kiszolgáló
előkészít egy fájlt, hogy elküldje azt a böngészőnek, a kiszolgáló általában
a fájlnév kiterjesztése alapján állapítja meg a MIME típust és altípust.
Ezután a kiszolgáló elküldi ezeket az információkat a böngészőnek. A
Web-kiszolgáló egy MIME Content-type fejlécet bocsát a böngésző rendelkezésére,
amely azonosítja az elküldésre kerülő fájl MIME formátumát. Egy kiszolgáló
például így jelezhet egy MIME típust és altípust: Content-type:
application/postscript.
MIME típusok A MIME text típusa szöveges információt jelent, amelyben a szöveg különböző szabványosított karakterkészletek karaktereiből és formázó leírásokból áll. Ilyen szövegtípus például a sima ASCII szöveg, az RTF (Rich Text Format) formátum, a HTML nyelv és számos más formátum. Az alkalmazások többrészes (multipart) értéket használnak ahhoz, hogy több, esetenként különböző adattípusú törzset kombináljanak össze egyetlen üzenetbe (többszörös dokumentumok). Ahhoz például, hogy csökkenteni lehessen a kiszolgáló és a böngésző között kicserélendő üzenetek számát, a kiszolgáló egyetlen törzsbe kombinálhat össze több, különböző típusú dokumentumot. A Web-kiszolgáló ezt a törzset összecsomagolja egy „multipart/mixed" Content-Type fejléccel, és a teljes üzenetet elküldi az Interneten keresztül a böngészőnek. Amikor a böngésző megkapja az üzenetet, megnézi a fejlécet, és megállapítja, hogy milyen dokumentumtípusokból tevődik össze a törzs. Ebben az esetben a kiszolgáló felel azért, hogy a különböző típusú dokumentumok megfelelően el legyenek választva egymástól, és az ügyfél az üzeneten belül meg tudja állapítani az egyes dokumentumok kezdetét és végét. |
Amint látjuk, a MIME a Web számára nagyon fontos specifikáció, mert elsősorban a hipermédia-adatok (amelyek multimédiás fájltípusokat jelentenek) átvitele az, ami megkülönbözteti a Web-adatokat és az Internet-adatokat. |
A HTTP állapot nélküli Eltérően
az olyan protokolloktól, mint az FTP, amely folyamatos kapcsolatot biztosít
mindaddig, amíg valami hiba nem történik vagy nem szakítjuk meg a kapcsolatot,
a HTTP állapot nélküli. Más szavakkal ez azt jelenti, hogy a böngészőnek
és a kiszolgálónak minden egyes HTTP művelethez létre kell hoznia, majd
meg kell szakítania a hálózati kapcsolatot. Amikor például rákapcsolódunk
egy Web-helyre, akkor a böngésző és a kiszolgáló létrehoz egy kapcsolatot,
amely lehetővé teszi, hogy a kiszolgáló letöltsön egy HTML fájlt a böngészőre.
Miután megérkezett a böngészőre a fájl, a kiszolgáló bontja a kapcsolatot.
Ha a böngészőnek a HTML fájl olvasása során le kell töltenie egy grafikus
fájlt, akkor a böngészőnek és a kiszolgálónak ehhez újabb kapcsolatot
kell létrehoznia.
A HTTP támogatja a dinamikus formátumokat A
HTTP segítségével az ügyfelek és a kiszolgálók dinamikusan tudják megállapítani
a dokumentumok formátumait. Ez azt jelenti, hogy amikor egy böngésző
kapcsolatba lép egy kiszolgálóval, akkor a böngésző elküldi a kiszolgálónak
azon formátumok listáját, amelyeket képes felismerni, Ezek ismeretében
a kiszolgáló a megfelelő formátumban tudja elküldeni az adatokat (amennyiben
ismeri a formátumot). Ilyen módon a kiszolgálók és az ügyfelek különleges,
egyedi formátumokat is használhatnak az adatok kicseréléséhez.
Információk a HTTP fejlécben A HTTP fejlécei információkat tartalmazhatnak azokról az objektumokról, amelyeket az alkalmazások a Weben keresztül elküldenek. A HTTP fejlécekben lévő információk alapján az alkalmazások megegyezhetnek abban a formátumban, amelyben az objektumokat el fogják küldeni. Ha egy alkalmazás nem tudja értelmezni egy HTTP fejléc információit, akkor a legtöbbjük egyszerűen figyelmen kívül hagyja az információkat. Miután az alkalmazások figyelmen kívül hagyják azokat a formátumokat, amelyeket nem ismernek fel, új protokollokat tesztelhetünk a Weben anélkül, hogy HTTP integritását megsértenénk. Így nem tesszük tönkre a HTTP-t, amikor olyan formátumokat tesztelünk, amelyeket az alkalmazások esetleg nem ismernek fel.
A HTTP könnyen olvasható A HTTP az emberek számára könnyen olvasható protokoll, ami azt jelenti, hogy szöveg alapú, és nincs szükség semmiféle dekódolásra ahhoz, hogy elolvashassuk. Egyes böngészők le is írják a HTTP tranzakciók állapotát, amit a tranzakciók során el is olvashatunk.
A HTTP általános protokoll A HTTP üzenetei az ügyfél által elküldött kérésekből és a kiszolgáló által az ügyfélnek visszaküldött válaszokból állnak. A kérő/válaszoló üzeneteknek két típusa van: egyszerű (simple) és teljes (full). A HTTP teljes kérő/válaszoló üzenetei általános üzenetformátumot használnak. A HTTP teljes kérő/válaszoló üzenetei által használt általános üzenetformátum opcionális fejlécmezőket (fejléceket) és egy törzset (magát a dokumentumot) tartalmazhat. A HTTP üzenetformátuma azért általános, mert az üzenetformátumok függetlenek a HTTP protokolltól. Más szavakkal ez azt jelenti, hogy a HTTP nem törődik a törzs tartalmával. Az egyszerű kérő/válaszoló üzenetek nem teszik lehetővé fejléc-információk használatát, és csak a törzs vételére korlátozódnak. Ne használjuk az egyszerű kérő formátumot, mert ez megakadályozza, hogy a kiszolgáló azonosíthassa a törzs típusát. Ilyen esetben viszont a dokumentumot megkapó alkalmazásnak (normál esetben a böngészőnek) kell megpróbálnia kitalálni a törzs formátumának típusát.
Kérés, megjelölés a HTTP-vel A HTTP használatakor az alkalmazások három kulcsműveletet végeznek: keresnek, elővesznek és megjelölnek. Egy Web-objektum kereséséhez az alkalmazások a HTTP segítségével adják meg a kiszolgáló számára az objektum URL-jét. Ha az objektum létezik, akkor az alkalmazás a HTTP segítségével veszi elő azt. Végül a HTTP állapotinformációk küldésével jelöli meg az alkalmazást a keresés és elővételi művelet sikeréről vagy sikertelenségéről. A következőkben erről a három lépéses eljárásról lesz szó.
Erőforrások keresése A
HTTP működésének alapját az ügyfél kérései és a kiszolgáló válaszai
jelentik. Az ügyfél (a kérő program) TCP/IP kapcsolatot létesít egy
kiszolgálóval (a válaszoló programmal) úgy, hogy kapcsolatkérő üzenetet
küld neki az Interneten keresztül. Ha a kiszolgáló elérhető, akkor fogadja
az ügyfél kérését, és létrehozza a kapcsolatot.
Erőforrás elővétele Miután a böngészőnk létrehozott egy TCP/IP kapcsolatot egy Web-kiszolgálóval, és elküldte a kérését, megkezdődik a dokumentumot elővevő folyamat. A kiszolgáló egy állapotsorral válaszol, amely a protokoll verzióját és a sikert vagy a hibát jelentő kódot tartalmazza. Az állapotsort egy MIME-szerű üzenet követi, ami a kiszolgálóval kapcsolatos információkat, a fejléc-információkat és esetlegesen a törzset tartalmazza.
Erőforrás megjelölése Amikor a böngészőnk azzal van elfoglalva, hogy létrehozzon egy kapcsolatot egy kiszolgálóval, vagy elővegyen a kiszolgálóról egy erőforrást, akkor a böngésző állapotsorában feltehetően különböző üzeneteket olvashatunk az éppen folyó műveletekkel kapcsolatban. Ezen üzenetek segítségével megtudhatjuk az elővenni kívánt erőforrás méretét, vagy azt, hogy megkezdődött a kért erőforrás elővétele (előfordulhat, hogy a kérdéses erőforrás már nem létezik). Ezen információk alapján dönthetünk arról is, hogy le akarjuk-e állítani a visszaállítás folyamatát. Az állapotkódok részletesebb információkat is szolgáltatnak a keresési és elővételi kísérletekről. Az állapotkódok általában a böngésző fő ablakában jelennek meg.
A HTTP négylépéses tranzakciója Amint láttuk, mielőtt egy ügyfél és kiszolgáló adatokat tudna cserélni, előbb kapcsolatot kell létrehozniuk egymással. Az Interneten az ügyfelek és a kiszolgálók a TCP/IP segítségével hozzák létre a kapcsolatokat. Mint tudjuk, hogy az ügyfelek adatokat kérnek a kiszolgálóktól, és a kiszolgálók a válaszukban küldik el a kért adatokat. Az ügyfelek és a kiszolgálók a HTTP-t használják a kérések és válaszok elküldéséhez. Említettük, hogy a kiszolgáló és az ügyfél a TCP/IP kapcsolatot csak egyetlen tranzakció időtartamára tartja fenn (a HTTP állapot nélküli), és hogy a kiszolgáló egy tranzakció befejeződése után általában megszakítja a kapcsolatot. Ha mindezeket tudjuk, akkor előttünk áll a HTTP négylépéses tranzakcióinak folyamata: 1. lépés: A
Kapcsolat létrehozása.
2. lépés: Az ügyfél kérésének
elküldése. 3. lépés: A kiszolgáló válaszának
elküldése. 4. lépés: A kiszolgáló befejezi
a kapcsolatot.
A HTTP válaszkódjainak osztályozása A HTTP három számjegyből álló állapotkódjainak első számjegye a válaszkód osztályát adja meg. A z első számjegynek öt különböző értéke lehet (1-től 5-ig): |
|
Az öt válaszkódosztály mindegyike további állapotkód értékeket tartalmaz. A HTTP állapotkódjainak értékei és a hozzájuk tartozó szöveges leírások:
A leírások szövege csak ajánlott szöveg, amelyet egy kiszolgáló a saját szövegére cserélhet le anélkül, hogy ezzel megváltoztatná a HTTP protokollt. |