420 likes | 564 Views
Web Technológiák. A Web és a HTTP protokoll. Baksáné Varga Erika. ME Általános Informatikai Tsz. Az Internet. Az Internet a világ legnagyobb számítógép hálózata (hálózatok hálózata = internetwork), amelyen az adatforgalmat a TCP/IP protokoll-együttes kezeli.
E N D
Web Technológiák A Web és a HTTP protokoll Baksáné Varga Erika ME Általános Informatikai Tsz.
Az Internet Az Internet a világ legnagyobb számítógép hálózata (hálózatok hálózata = internetwork), amelyen az adatforgalmat a TCP/IP protokoll-együttes kezeli. TCP (Transmission Control Protocol) az Internet IP (Internet Protocol) szabványa A TCP/IP protokollcsoport lehetővé teszi az egymással összekapcsolt heterogén hálózatok közötti kommunikációt.
Protokoll Azon kommunikációs szabályok és üzenetformátumok együttese, amelyeket a hálózatba kapcsolt számítógépeknek be kell tartaniuk, hogy (üzenetbe csomagolt) adatokat cserélhessenek egymással. A programok az Interneten folyó mindenféle kommunikációhoz protokollokat használnak.
TCP/IP A felső TCP réteg az üzenetek csomagokra bontását, ill . azok összerakást végzi. Az IP réteg a csomagok (packet) cím részét kezeli (gateway ez alapján továbbítja a csomagot, akár különböző útvonalakon). 1960 vége 1970 eleje ARPA (Advanced Research Projects Agency), DOD (Department of Defence): • 7/8-ados szabály (hidegháború) • teljesen decentralizált • teljesen redundáns • rugalmas architektúra (fájl, hang továbbítás)
Miért a TCP/IP? • Elfogadott ipari szabvány protokoll • Irányítható protokoll együttes (routable) • Különböző operációs rendszereken is rendelkezésre áll (Unix - Windows) • A protokollok nyilvánosak és szabadon felhasználhatóak (nincs jogdíj) • Ez egy jól megtervezett protokoll • Ez egy nyílt szabvány, egyetlen kereskedő sem uralhatja, bárki használhatja és ez alapján alkalmazásokat fejleszthet
A TCP/IP nyílt szabvány • Internet Society (ISOC): bátorítja a fejlesztést és elősegíti az Internet hozzáférhetőségét. • Internet Architecture Board (IAB): az ISOC technikai bizottsága, az szabványok felállításáért és közzétételéért felel (RFC). • Az IAB 3 csoportot irányít:Internet Research Task Force (IRTF): a TCP/IP fejlesztéséért felel,Internet Engineering Task Force (IETF): az Internet problémák megoldására és az új szabványok elfogadtatásáért felel,Internet Assigned Numbers Authority (IANA): a protokollokhoz egyedi számot v. portot rendel.
TCP/IP, RFC Request for Comment (RFC): a TCP/IP szabványokat konszenzussal alakítják ki. RFC formájában bárki javaslatot tehet, egy idő múlva vagy elfogadják, vagy elutasítják. Az Internet Network Information Center (InterNIC) feladatai: • az IP címek kiosztásának felügyelete, • a szervezetek domain nevei kiosztásának felügyelete.
OSI - TCP/IP Forrás: SearchTechTarget.com.
A TCP/IP rétegei A Network Interface réteg az OSI fizikai és adatkapcsolati rétegének felel meg, a host hálózati kapcsolódását határozza meg. A keretek számítógépek közötti cseréjéhez szükséges hardvert és szoftvert tartalmazza. LAN alapú (pl. Ethernet) vagy WAN-alapú (pl. ISDN) technológiát használhat.
A TCP/IP rétegei Az Internet réteg több protokollt használ a csomagok kézbesítéséhez: IP (Internet Protocol): a csomagok címzéséért és a hálózatok közötti útvonal-irányításáért felel. Biztosítja a megfelelő célhálózat elérését. ARP (Address Resolution Protocol): a hardver címek biztosításért felel és megfelelteti azokat az IP címeiknek, amikor a cél számítógép ugyanazon a hálózaton van.
A TCP/IP rétegei ICMP (Internet Control Management Protocol): hibajelzésre használatos és üzenetet küld a csomag kézbesítéséről. Példa üzenetek: Destination unreachable: a router nem találja a célt. Time exceeded: a csomag TTL-je (Time to Live) elérte a zérust (255-ről indul, routerenként eggyel csökken).
A TCP/IP rétegei Transport Layer: a kiinduló és a cél számítógép közötti kommunikációt biztosítja és az alkalmazási réteg információit csomagokra tördeli. A adat kézbesítéséhez két módszert használ: kapcsolat-orientált kézbesítés a TCP használatával, kapcsolat-nélküli kézbesítés az UDP használatával.
A TCP/IP rétegei Application Layer: itt futnak a TCP/IP szolgáltatások (magas-szintű protokollok), mint pl. FTP, HTTP és SMTP. A TCP/IP környezetben általában két alkalmazás programozási interfészt használnak (API): a socket-eket és a NetBIOS-t.
A TCP/IP hálózati modell A TCP/IP szerint kialakított hálózatok az ISO/OSI referenciamodell hét szintje közül csak ötöt használnak.
A Web A Web 1989 márciusában született meg. A Web megalkotója: Tim Berners-Lee (CERN, Genf) Célja: dokumentumok összekapcsolása (megosztása) hálózaton keresztül Javaslat:hipertext-rendszer (független dokumentumok összekapcsolása és a kapcsolatokon keresztüli megtekintése)
A Web A Web első nyilvános használata: 1992 jan. • A dokumentumokat (helyi) Web kiszolgálókon tárolta. • Az adatokhoz Web böngészők segítségével fértek hozzá. Ma (World Wide Web): • A felhasználók rákapcsolódnak egy Web kiszolgálóra és lekérik a dokumentumokat. • A Web kiszolgálók a kérésre válaszolva szolgáltatják a dokumentumokat. • A felhasználók böngészők segítségével tekintik meg a dokumentumokat. • Egy kiszolgáló egyidejűleg több felhasználói kérést is teljesít.
A Web és az Internet „A Web az Internet tetején foglal helyet.” Azaz a Web az Internetet használja a kommunikáció alapjául. Az Internet az a szállító mechanizmus, ami lehetővé teszi, hogy a böngésző adatokat küldjön és kapjon. A Web egymással összekapcsolt dokumentumokból áll. Segítségével haladhatunk végig az ”egymáshoz kapcsolódó” dokumentumokon.
WWW definíciók Technikai meghatározás: Az Interneten található összes erőforrás és felhasználó, akik a Hypertext Transfer Protocol-t használják. A World Wide Web Corsortium (W3C, megalapítását Tim Berners-Lee támogatta) általánosabb meghatározása: A World Wide Web a hálózaton elérhető információk univerzuma, az emberi tudás megtestesülése.
W3C Saját meghatározása: A World Wide Web Corsortium azért létezik, hogy a Web összes lehetőségeit valóra váltsa. A W3C egy ipari konzorcium, ami a Web fejlődéséhez szükséges szabványokat és a WWW termékek közötti együttműködést mozdítja elő, specifikációk és referencia szoftverek előállításával. Bár ipari szereplők alapították, cég semleges és termékei mindenki számára ingyenesek. A Konzorcium nemzetközi, az USA-ban a MIT Laboratory for Computer Science és Európában az INRIA ad neki közösen otthont.
A HTTP protokoll A HTTP (Hypertext Transfer Protocol) kifejezetten a Web számára megtervezett hálózati protokoll. Vagyis a Webnek saját kommunikációs szabályai vannak, amelyeknek együtt kell működniük az Internet protokollokkal, hogy továbbíthatók legyenek a Web dokumentumok.
A HTTP protokoll A Web HTTP protokollját úgy képzelhetjük el, mint ami az Internet TCP/IP protokollja fölött helyezkedik el. Ahhoz, hogy használhassuk a Web világhálót, előzőleg rá kell kapcsolódnunk az Internetre. Azaz a Webet Internet nélkül nem érhetjük el.
A HTTP protokoll A HTTP vezérli a Web kiszolgáló és a böngésző közötti együttműködést. • Böngészővel Web-helyhez kapcsolódunk = a böngésző a Web-hely kiszolgálójától kéri a Web-oldal (ami egyszerű, HTML kódjeleket és ASCII szöveget tartalmazó fájl) megjelenítését. • Válaszul a Web kiszolgáló elküldi a kért fájl másolatát a böngészőnek. A böngésző a fájl megjelenítésekor a HTML kódjeleket olvasva formázza meg a szöveget. Amikor grafikának megfelelő kódjelet olvas, kéri a kiszolgálót hogy küldje el a grafikát tartalmazó fájl másolatát.
Dokumentumformátumok a Weben A Web dokumentumok formátumát (és azt, hogy miképpen továbbíthatók multimédiás adatok – bináris fájlok, képfájlok, mozgóképfájlok, audiófájlok, alkalmazásfájlok stb. - az Internet levelezőszabványaival) a MIME (Multipurpose Internet Mail Extension) specifikáció írja elő. Elődje: RFC 822: a számítógépek között továbbítandó szöveges üzenetek (e-mail) szintaxisát írta le.
A MIME használata A Web kiszolgáló az Interneten keresztül a böngészőnek elküldött fájl típusát leíró információt beilleszti egy MIME fejlécbe. A böngésző ez alapján határozza meg a törzs (a kiszolgáló által elküldött fájl) típusát. A törzs: • lehet üres, vagy • egy vagy több dokumentumot tartalmazhat.
MIME típusok, altípusok A Web kiszolgáló a kliensnek elküldött minden egyes fájl fejlécébe felvesz egy MIME típust és altípust. • Ezek a Content-type fejlécmezőben találhatók, ami a böngészőnek elküldött üzenet elején helyezkedik el. • Ezeket a kiszolgáló általában a fájl kiterjesztése alapján állapítja meg.
MIME típusok, altípusok MIME típus: általános fájlcsoport-típus MIME altípus: általános fájlcsoport-típuson belüli konkrét típus Például: Stb.
MIME típusok, altípusok • Több, esetenként különböző adattípusú törzs összekombinálásakor: Content-type: multipart/mixed • Bináris adatok, alkalmazás fájlok továbbításakor: Content-type: application/postscript • Meglévő üzenet becsomagolásához (e-mailre válaszban az eredeti üzenet is szerepeljen): Content-type: message stb.
A HTTP használata Kétféle lehet: • Állapot nélküli: a böngésző és a kiszolgáló között minden egyes HTTP művelet (tranzakció) idejére létrejön egy kapcsolat, ami azonnal meg is szakad a művelet végrehajtása után (a kiszolgáló hatékonysága nő) • A kiszolgálók fenntartják a kapcsolatukat: válaszadás után nem szakítják meg azonnal a kapcsolatot (teljesítmény javul)
HTTP információk • A HTTP szöveg-alapú, olvasható protokoll. • Dokumentumformátumok dinamikus megállapítása: amikor a böngésző kapcsolatba lép egy kiszolgálóval, elküldi azon formátumok listáját, amiket képes felismerni. Így a kiszolgáló (amennyiben ismeri) a megfelelő formátumban tudja elküldeni az adatokat. • A HTTP fejlécben azokról az objektumokról található információ (metainformáció), amelyeket az alkalmazások a Weben keresztül elküldenek. Ha egy alkalmazás nem tudja értelmezni a HTTP fejléc információit, figyelmen kívül hagyja azokat.
A HTTP általános protokoll A HTTP üzenetei a kliens által elküldött kérésekből és a kiszolgáló által a kliensnek visszaküldött válaszokból állnak. egyszerű teljes • nincs fejléc - ált. üzenetformátum • csak törzs (HTTP-től független) (a kliensnek kell - van fejléc azonosítania a törzs - van törzs formátum típusát) (a HTTP nem törődik a törzs tartalmával)
A HTTP használatával végzett műveletek • Keresés: 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 obj. URL-jét. -> Kérési üzenet tartalma: kérési eljárás, URI, protokollkonverzió, MIME-szerű üzenet (kérésmódosítás, ügyfél-információ, esetleg a törzs) • Elővétel: a kiszolgáló egy állapotsorral válaszol, ami a protokoll verzióját és a sikert vagy hibát jelentő kódot tartalmazza; ezt egy MIME-szerű üzenet követi (kiszolgálóval kapcs. inf., fejléc-inf., esetleg törzs) • Megjelölés: a böngésző állapotsorában üzeneteket olvashatunk az éppen folyó művelettel kapcsolatban (megkezdődött-e a kért obj. elővétele, mekkora a mérete stb.)
A HTTP működése 4 lépésben • Kapcsolat létrehozása A HTTP protokoll portszáma: 80, 8080 • Az ügyfél kérésének elküldése 1. Kérési sor tartalma: Minden HTTP kérés egy metódussal (a kérés célját meghatározó parancs) kezdődik, amit egy obj. URL-je követ. Az ügyfél hozzáfűzi ezt az információt az általa használt HTTP protokoll verziójához. (szóközzel elválasztva) 2. Ezt egy soremelés (CRLF) karaktersorozat követi. 3. Opcionális kérésfejléc: a kérésre és a kezdeményező ügyfélre vonatkozó információk. 4. Soremelés karaktersorozat 5. Opcionális törzs: a továbbítandó adatok bájtokba csoportosítva.
A HTTP működése 4 lépésben • A kiszolgáló válaszának elküldése Válaszüzenet tartalma: 1. HTTP protokoll verziója 2. Egy 3 számjegyből álló állapotkód és ennek a szöveges leírása 3. Soremelés karakter 4. Opcionális válaszfejléc (a kért erőforrásra vonatkozó inf., a válasz továbbításához szüks. MIME deklarációk) 5. Soremelés karakter 6. Opcionális törzs (a továbbítandó adat bájtokba csoportosítva) • Kapcsolat lezárása állapot-sor
A HTTP metódusai • GET: erőforrás kérés parancsa (az egyszerű kérések csak ezt a metódust ismerik; itt a kérési sorban nem kell megadni a HTTP verziót) • HEAD: erőforrás kérés parancsa, ahol a kiszolgáló a válaszban nem küld vissza törzset (csak inf. szerzés az erőforrásról) • POST: a kérésbe beillesztett obj-ot használja a Web kiszolgáló a kérési sor URI-je által megadott erőforrásként (ált. létrehozza vagy lecseréli a metódusban megadott URI-hez tartozó erőforrást) Érvényes Content-length (kérési üzenet tartalmának hossza) mezőt kell tartalmaznia. • Stb.
Általános fejléc mezők • Date • MIME-version • Pragma Direktívák a kliens és a kiszolgáló közötti úton elhelyezkedő bármely fogadó állomás vagy átjáró számára, hogy hogyan engedjék át a kérést.
A kérésfejléc mezői • Accept: ügyfél által támogatott MIME típusok és altípusok listája • Authorization • From • If-modified-since: feltételes GET metódus (ha a kért erőforrás a mezőben megadott dátum óta nem módosult, akkor a kiszolgáló nem küldi el az erőforrás másolatát) • Referer: annak az erőforrásnak a címe, ahonnan az aktuális URI-t megkapta az ügyfél • User-agent: a kérés küldéséért felelős kliens (statisztikai célokra használják, pl. látogatók száma)
A törzsfejléc mezői • Allow: az ügyfél által az adott erőforráson elvégezhető HTTP metódusok listája • Content-encoding: a törzs médiatípusához használt tömörítés • Content-length: a GET metódus hatására a fogadó fél által kapott törzs mérete; HEAD metódus esetén annak a törzsnek a mérete, ami akkor került volna elküldésre, ha a kérés GET lett volna; POST metódus esetén a kiszolgálóra küldendő törzs mérete (a törzs méretét a bájtok decimális számaként kell megadni, 0 vagy pozitív) • Content-type: a GET metódusra válaszként kapott törzs médiatípusa; HEAD metódus esetén … (lásd fent) • Expires: dátum és idő, ami után az alkalmazások a törzset elavultnak feltételezik • Extension-header: további törzsfejléc definiálását lehetővé tevő mechanizmus (a HTTP protokoll megváltoztatása nélkül) • Last-modified
A válaszfejléc mezői • Location: a kérési sorban az URI által megadott erőforrás pontos címe • Server: inf. a kiszolgáló által a kérés teljesítéséhez felhasznált szoftverről • www-authenticate: a kliensazonosításhoz szükséges információkat juttat a kiszolgálóhoz
S-HTTP • Secure Hypertext Transfer Protocol • Tartalmazza a Web dokumentumok titkosítását, valamint digitális aláírásokat • Lehetővé teszi, hogy az ügyfél a MAC (Message Authentication Code) segítségével ellenőrizze a Web-üzenet épségét • Vö.: SSL (Secure Socket Layer)
Webes alkalmazások hálózati architektúrája • Mainframe-ek • 2-tier architektúra • 3-tier architektúra • n-tier … • Middleware koncepció (lásd Osztott rendszerek)
Web technológiák • HTML: a web „régi” nyelve • Szerver oldali API-k: • CGI (Common Gateway Interface) • ISAPI (Internet Server API, Microsoft) • ColdFusion • PHP (Hypertext Preprocessor) • Alkalmazás szerver • Kliens oldali API-k: • Java script • Java applet • XML: a web „új” nyelve