Internet Protokollok

HTTP:

A World Wide Web napjaink leggyakrabban használt internet szolgáltatása. Kommunikációjához a HTTP(HyperText Transfer Protocol)-t használja. Ez a protokoll lehetővé teszi, hogy a HTTP kliensek (browser) oldalakat töltsenek le a HTTP szerverekről, és információkat küldjenek vissza a szervernek.

Mit is csinál ez a protokoll ?

Amikor a browser-el (Netscape, Internet Explorer, Lynx) lekérünk egy oldalt, a browser elküld egy HTTP kérést a Web szervernek, majd megjeleníti a szerver által visszaadott adatokat. Az állomány amit visszakap bármilyen tipus lehet. Általaban egy HTML(HyperText Markup Language) nyelv használatával felépített web oldal.

Mint sok más kliens a HTTP browser is kiküld egy parancsot, majd várakozik a szerver válaszára. Ez a válasz tartalmazhat egyszerű szöveg állományt, HTML oldalt, képeket, hang állományokat, animációkat, és minden egyebet amit file-okban tárolni lehet.

Eredetileg a HTTP egy-egy új kapcsolat felépítését igényelte minden kéréshez. Azonban már a 1.0-ás verzió végefelé megjelent bővítésként, később az 1.1 verziótól kezdve pedig már szerves része a protokollnak, egy opció, amellyel a browserek kérhetik a szervertől, hogy egy kapcsolattal több adatot is átvihessenek.

Mint az előzőekből kiderült, több verziója is van a protokollnak. Lehetőség van arra, hogy a különböző verziójú browserek, proxyk, és szerverek is együtt működjenek. Ez úgy valósulhat meg, hogy mindegyik eszköz támogatja visszamenőleg is a különböző verziókat. A közös HTTP verzióban, illetve opciókban az egyes eszközök úgy állapodnak meg, hogy a saját képességeiknek megfelelően korlátozzák a kommunikációs szintet. Vagyis a gyakorlatban a browser a kérés fejlécében közli, az általa támogatott legnagyobb HTTP verziót, illetve legcélszerűbb opciókat. Ezeket a továbítás során a proxy, illetve válasz során a szerver korlátozza az általa támogatott legnagyobb verziójú protokollra, illetve az ismeretlen opciókat kiszűri. Ezáltal a kommunikáció végére kialakul az eszközök által közösen támogatott legjobb protokoll.

A protokoll elemei

Az alábbiakban a HTTP 1.0 verzió protokoll elemeit tárgyaljuk.

A browserek által küldött kérések általános formája:

command document-URL protocol-ID<CR><LF>

header<CR><LF>

<CR><LF>

body

A szerver által küldött válaszok általános formája:

protocol-ID error-code message<CR><LF>

header<CR><LF>

<CR><LF>

body

A kliensek parancsai:

HEAD

A HEAD request arra kéri a szervert, hogy a megnevezett dokumentum fejlécét küldje vissza. A szerver által visszaküldött fejlécnek minimum tartalmaznia kell a dokumentum hosszát, az utolsó módosítás dátumát, és a típusát.

Példa: HEAD /htdocs/index.html HTTP/1.0

GET

A GET request arra kéri a szervert, hogy a megnevezett dokumentumot keresse meg és küldje vissza. A szerver visszaküldi a HEAD-nél is visszaadott fejlécet, és ezt követi a dokumentum maga. A GET parancs arra is használható, hogy információkat küldjön vissza a scriptek számára, azonban erre a feladatra elsősorban a POST parancs szolgál.

Példa: GET /htdocs/index.html HTTP/1.0

POST

A POST request arra szolgál, hogy adatokat küldjünk vele a klienstől a szervernek. Leggyakrabban a HTML form-ok ezt a metódust alkalmazzák az adatok elküldésére. Természetesen a kérés a parancson kívűl tartalmaz egy fejlécet minimum az adatokat tartalmazó body hosszával, és a body részben magukat az adatokat.

Példa: POST /htdocs/forms/question.html HTTP/1.0

Content-length: 6

data=5

A szerverek gyakoribb hibakódjai:

Error Code Message

200 Ok

302 Redirect

403 Access denied

404 Not found

500 Server error

FTP:

Az Interneten az állományok mozgatására (lehozására a távoli szerverekről, vagy a feltöltésre) leggyakrabban az FTP(File Transfer Protocol) használatos.

Mit is csinál ez a protokoll ?

Amikor használjuk a az FTP protokollt, akkor kilistázhatjuk a másik Internet site állományait, lemásolhatjuk az állományait, vagy feltehetünk újakat. Az FTP kliensek általában az alábbi funkciókkal rendelkeznek:

Ezeken kívűl gyakran támogatják bináris és az ASCII (szöveges) átviteli módok közötti választás lehetőségét. A szöveges átvitel során a rendszer elvégzi az eltérő operációs rendszerek közötti konvertálást.

A protokoll elemei

Egy FTP session két kapcsolatot igényel a kliens és a szerver között. Az egyiket használja a parancsok, a másikat az adatok átvitelére.

Az FP leggyakrabban használt parancsai:

A CWD munka könyvtárat változtatja. A CDUP paranccsal valaszthatjuk a szülő könyvtárat az aktuális könyvtárnak ha a szerver nem támogatja a ".." speciális könyvtárnév használatát. A LIST a megadott, vagy az aktuális könyvtárban található állományok listájával tér vissza. A TYPE paramétere lehet A (ASCII) vagy I (Image másnéven bináris). És végűl a RETR és a STOR parancs végzi az állományok mozgatását. A RETR lehoz egy állományt a távoli gépről a felhasználó gépére, a STOR pedig feltölti a felhasználó gépéről a szerverre.

Ezeket a parancsokat a vezérlő csatornán továbbítja a rendszer. Az egyszerű választ, amely gyakran a siker vagy a hiba jelzése, szintén ezen a csatornán kapja a kliens. Az állományok listájának, vagy magának az állománynak az átviteléhez a szerver egy adat kapcsolatot hoz létre. Amikor az átvitel befejeződik az értesítés szintén a vezérlő csatornán továbbítódik.

E-mail

Az E-mail az Internet egyik leglényegesebb szolgáltatása. Az internet minden felhasználója ismeri és használja, mint az egymás közötti kapcsolat tartás eszközét.

A levelezés alapvetően két protokoll-ra épül:

(A POP3-on kívűl más protokollokkal, vagy közvetlenűl a mail szerverre való belépéssel is elérhetjük a levelesládánkat, azonban ez a leggyakrabban használt metódus.)

SMTP:

A Simple Mail Transfer Protocol (SMTP) a hálózat egyik legrégebbi és legstabilabb protokollja. Az SMTP lehetővé teszi, hogy két gép az Internet-en üzeneteket váltson egymással.

Mit is csinál ez a protokoll ?

Egy kapcsolat épűl fel a két gép között. A kommunikáció ezen folyik. A kezdeményező "üdvözli" a fogadót. Közli a küldő és a címzett címét, majd a levelet adja át. Végül "elbúcsúzik" és bontja a fogadó bontja a kapcsolatot.

A protokoll elemei

A kezdeményező parancsai:

Minden parancs <CR><LF>-el záródik.

A válaszok egy három digites response kóddal kezdődnek, és ezt követi egy ember által is olvasható szöveg.

A HELO paranccsal kezdődik minden session. Amikor egy kapcsolat felépül a kezdeményező gép egy HELO parancsot küld a saját teljes nevével. Mintha körülbelül azt mondanánk "Hello, én vagyok joe.cool.hu". A vevő egy 220-as kóddal válaszol. Tipikusan a szöveg a vevő neve.

A MAIL FROM: parancs paramétere a küldő teljes e-mail címe. A vevő válasza 250 OK. Az RCPT TO: parancs mondja meg, hogy ki a címzettje a levélnek. Ha a levélnek több címzettje van, akkor minden címzet egy-egy RCPT TO: paranccsal adunk meg. Mindegyikre küld egy-egy választ a vevő. Az RCPT TO: parancsra az alábbi válaszok érkezhetnek:

Az első kettő azt jelenti, hogy sikeres volt a kérésünk. Az utóbbi kettő hibát jelez, tehát a címzett nem fogja megkapni.

Miután megadtuk az összes címzettet következik a maga a levél. Az SMTP nem specifikálja a levél formátumát. Természetesen a fogadó programok megkövetelnek bizonyos formátumot. A DATA parancs vezeti be a levelet. Ezt követi a levél fejléce és teste. Miután az egész üzenetet elküldtük egy uj sorban egy "."-al jelezhetjük a levél végét. Mivel minden sor <CR><LF>-el végződik, ezért a záró jelzés "<CR><LF>.<CR><LF>". (Kicsi a valószínűsége, hogy egy sorban egyedülálló "." legyen, de mivel nem zárhatjuk ki, ezért a küldőnek ".."-t kell küldeni helyette, amit a vevő visszaalakít.)

A QUIT parancs zárja a kapcsolatot a gépek között.

Összegezés képpen nézzünk egy példa kommunikációt. A küldő avalon.aut.bme.hu, jelezzük "S"-el az általa küldött sorokat. A vevő mail.rulez.org, jelezzük "R"-el. A címzettek kate, aki létezik és jack, aki nem létezik az adott szerveren. (A sorok végén <CR><LF> áll.)

R: 220 mail.rulez.org SMTP ready

S: HELO avalon.aut.bme.hu

R: 250 mail.rulez.org

S: MAIL FROM:<joe@avalon.aut.bme.hu>

R: 250 OK

S: RCPT TO:<kate@mail.rulez.org>

R: 250 OK

S: RCPT TO:<jack@mail.rulez.org>

R: 550 No such user

S: DATA

R: 354 Start mail input: end with <CRLF>.<CRLF>

S: Date: 14 Nov 1999 10:20:30

S: From: joe@avalon.aut.bme.hu

S: To: kate@mail.rulez.org, jack@mail.rulez.org

S:

S: Hi! This e-mail is a cool thing.

S: .

R: 250 OK

S: QUIT

R: 250 mail.rulez.org closing the session.

POP3:

A POP3 a Post Office Protocol version 3 rövidítése. Ha a gépünk folyamatos Internet kapcsolata van, és folyamatosan működik, és egy mail szervert futtatunk rajta, akkor tudja fogadni a leveleket SMTP-n keresztűl is. Ezek a feltételek általában nem teljesülnek a felhasználóknál. A Post Office Protocol-t ahoz fejlesztették ki, hogy lekérhessük vele a leveleinket a mail szervertől, amelyre a fenti feltételek teljesülnek.

Mit is csinál ez a protokoll ?

A fogadó gép bekapcsolódik a küldő szerverhez, és lekérdezi, hogy vannak-e új leveleink, és lehozza, ha van. A POP3 kommunikáció is parancsokból és válaszokból áll. Csak egy csatornát használ. Egyes parancsokra egy soros, másokra több soros válaszok kapunk. A több soros válaszok egy egyedül álló "."-al záródnak, mint az SMTP-nél a levél. (A levélben szereplő pontokat is úgy kezeli mint az SMTP.) A válaszok "+OK" vagy "-ERR" taggal kezdődnek attól függően, hogy sikeres vagy hiba jelzést kapunk.

A protokoll elemei

Parancsok Paraméterek Válasz Funkció

USER usernév Felhasználó azonosítása

PASS jelszó Jelszó

STAT Levelek száma Hány új levele van a felhasználónak

LIST [levél száma] Levelek Az levelek listája

RETR levél száma A levél Lehozza a kiválasztott levelet

DELE levél száma Törli a kiválasztott levelet

LAST Az utolsó levél száma Az utolsó levél száma

QUIT A kapcsolat vége

Nézzünk egy példa kommunikációt. A "C" jelzi a klienst, az "S" a szervert:

S: +OK POP3 server ready

C: USER joe

S: +OK

C: PASS jelszo

S: +OK joe's mailbox has 3 messages

C: STAT

S: +OK 3 460

C: LIST

S: +OK 3 messages (460 octets)

S: 1 120

S: 2 240

S: 3 100

S: .

C: LIST 2

S: +OK 2 240

C: RETR 1

S: +OK 120 octets

S: Date: 14 Nov 1999 11:22:33

S: From: kate@mail.rulez.org

S: To: joe@avalon.aut.bme.hu

S:

S: Hi Joe !

S: .

C: DELE 1

S: +OK message 1 deleted

C: QUIT

S: +OK session closed (2 messages left)