3. Hogyan működik az internet?
Translated by Karbonade · 6 Jul, 2009
3: How does the Internet work?, written by Jonathan Lane.
- ElÅzÅ leÃrás â Az internet és a web története, a webes szabványok evolúciója
- KövetkezÅ leÃrás â A webes szabványok modellje â HTML, CSS és JavaScript
- Tartalomjegyzék
BevezetÅ
Néha elÅfordul, hogy szeretnél betekintést nyerni a dolgok mögé, hogy lásd a fogaskerekeket és az ékszÃjakat az események mögött. A mai a te szerencsés napod. Bevezetlek a legújabb technológiák működésébe, melyek segÃtségével már elboldogulsz a világhálóval.
Ez a leÃrás az alapvetÅ technológiákról szól, melyek a világhálót éltetik:
- Hiperszöveg jelölÅnyelv (HTML)
- Hiperszöveg-átviteli protokoll (HTTP)
- Domainnév rendszer (DNS)
- Webszerverek és internetböngészÅk
- Statikus és dinamikus tartalom
Ezek mind nagyon alapvetÅ dolgok – még ha az itt leÃrtak nagy része nem is segÃt egy jobb weboldal elkészÃtésében, megadja a megfelelÅ nyelvezetet ahhoz, hogy az ügyfeleiddel vagy másokkal beszélgethess a webrÅl. Ez olyan, mint ahogy egy bölcs apáca mondta A muzsika hangja c. filmben: âMert az olvasást hogy kezdik? â Ã, B, C; Az éneklést Ãgy kezdik: Dó, Ré, Miâ. Ebben a leÃrásban röviden áttekintjük, hogyan kommunikálnak egymással a számÃtógépek a HTTP és TCP/IP használatával, aztán megnézzük a különbözÅ nyelveket, melyek együtt alkotják az internetet képezÅ weboldalakat. Ebben a bejegyzésben a következÅ témákról lesz szó:
- Hogyan kommunikálnak egymással a számÃtógépek az interneten keresztül?
- A tartalmak tÃpusai
- Statikus kontra dinamikus oldalak
- Ãsszefoglaló
- Tesztkérdések
Hogyan kommunikálnak egymással a számÃtógépek az interneten keresztül?
Szerencsére a számÃtógépek dolgait nem bonyolÃtottuk el túlságosan. Amikor a világhálót nézzük, a legtöbb oldal ugyanazt a kódot használja, a HTML-t, amely egy közös szabályrendszer, a HTTP (hiperszöveg-átviteli protokoll) alapján működik. A HTTP az internet általános ânyelvjárásaâ (elÅÃrása), figyelembe véve például, hogy egy windowsos rendszer tökéletes összhangban legyen a legújabb és legjobb Linux verzióval (Dó, Ré, Mi!). Az internetböngészÅkön túl – ezek speciális programok, melyek értelmezik a HTTP utasÃtásokat és lefordÃtják a HTML kódot emberek számára olvasható formára – a weboldalakat azért Ãrják HTML-ben, hogy bármilyen számÃtástechnikai eszközön képes legyél azt elolvasni, telefonon, PDA-n, vagy az egyre népszerűbb videojáték rendszereken.
Annak ellenére, hogy ugyanazt a nyelvet beszélik, a webet használó eszközöknek szükségük van szabályokra, hogy egy másik eszközzel kommunikálni tudjanak – ez olyan, mint megtanulni, hogy felemeled a kezed, mielÅtt kérdezel az órán. A HTTP lefekteti ezeket az alapvetÅ szabályokat az internet számára. A HTTP-nek köszönhetÅen egy kliens (mint pl. a számÃtógéped) tudja, hogy Å az, akinek kezdeményeznie kell a kérést egy weboldal vagy egy szerver felé. A szerver egy számÃtógép, amely olyan programokat futtat, melyek érzékelik a kérésed, megkeresik a kÃvánt weboldalt, és elküldik a számÃtógépedre, hogy a böngészÅd megjelenÃthesse azt.
A kérés/válasz kör elemzése
Most átnézzük azokat az eljárásokat, melyek lehetÅvé teszik, hogy a számÃtógépek az interneten keresztül kommunikáljanak. A HTTP kérés/válasz kört alaposabban is megvizsgáljuk. Lentebb van néhány számozott lépés, ezek mentén haladunk elÅre, Ãgy érthetÅbben el tudom magyarázni a fogalmak jelentését.
Minden kérés/válasz úgy kezdÅdik, hogy beÃrjuk az URL-t (egységes erÅforrás-azonosÃtó) a böngészÅnk cÃmsorába, valahogy úgy, mint a http://dev.opera.com. Nyiss meg egy böngészÅt, Ãrd be ezt a cÃmet!
Most van egy dolog, amit lehet, hogy még nem tudsz: a böngészÅk nem arra használják az URL-eket, hogy lekérjék az oldalakat a szerverekrÅl; Internet Protokollt, vagyis IP cÃmeket használnak (mint a telefonszámok vagy az irányÃtószámok, csak ezek a cÃmek szervereket azonosÃtanak). Például a http://dev.opera.com IP cÃme a 213.236.208.98.
Próbálj megnyitni egy új fület vagy új ablakot a böngészÅdön, majd Ãrd be: http://www.apple.com, majd üss entert; aztán Ãrd be: http://17.149.160.10/, és üss entert – pontosan ugyanoda jutsz. Most Ãrd be a http://213.236.208.98/ cÃmet – ugyanarra a szerverre jutunk, mint az 1. lépésben, habár most 403 âBelépés visszautasÃtvaâ hibát kapunk – ez azért van, mert nem rendelkezünk belépési engedéllyel a kiszolgáló gyökerébe.
A http://www.apple.com alapvetÅen ugyanazt az eredményt adja, mint a http://17.149.160.10/, de miért, és hogyan? Ez azért van, mert az emberek jobban emlékeznek szavakra, mint hosszú számsorokra. A rendszer, ami a munkát elvégzi, a DNS (domainnév rendszer), amely alapvetÅen egy átfogó, automatikus cÃmtár, ami minden internetre csatlakozó eszköz cÃmét eltárolja. Amikor beütöd a http://dev.opera.com cÃmet a cÃmsorba és leütöd az entert, a böngészÅ elküldi ezt a cÃmet egy névszervernek, ami megpróbálja meghatározni a hozzá tartozó IP-cÃmet. Készülékek garmadái csatlakoznak egyszerre a világhálóra, és nincs minden DNS szerveren listázva az összes hálóra kötött készülék, ezért van egy rendszer, ahol a kérésed végrehajtódik, hogy a megfelelÅ szerver teljesÃteni tudja azt.
Tehát a DNS rendszer utána néz a www.opera.com weboldalnak és megtalálja, hogy az a 17.149.160.10 cÃmen található, majd ezt a cÃmet visszaküldi a böngészÅdnek.
A géped küld egy kérést az IP cÃm által megjelölt géphez, és várja, hogy visszajöjjön a válasz. Ha minden megfelelÅen működik, a szervergép visszaküld egy rövid üzenetet a kliensnek, hogy minden rendben (1. ábra), majd küldi a weblapot. Az üzenet ezen formáját egy HTTP fejléc tartalmazza.
1. ábra: Ebben az esetben minden rendben megy, a szerver a megfelelŠweblapot küldi el.
Ha valami hiba történik, például rosszul Ãrod be az URL-t, egy HTTP hibát kap a böngészÅd â a népszerűtlen 404 âAz oldal nem találhatóâ hiba a legáltalánosabb példa erre, amellyel találkozhatsz.
Most próbáld beÃrni a http://dev.opera.com/joniscool.html cÃmet â az oldal nem létezik, Ãgy 404-es hibaüzenetet kapsz. Próbáld ki még pár nem létezÅ lappal, különbözÅ weboldalakon, Ãgy különbözÅ formában találkozhatsz a hibával. Ez azért van, mert néhány weboldal hiba esetén a szerver saját hibalapjára irányÃtja az eltévedt böngészÅket, mÃg más oldalaknak saját, egyedi hibaüzenetei vannak, amelyekkel jelzik, ha hibás a hivatkozás. Ez egy különleges eljárás, amit ezen a kurzuson nem részletezünk, de szerencsére késÅbb, egy különálló leÃrásban lesz róla szó a dev.opera.com-on.
A végén még egy apróság az URL-ekrÅl: általában egy weblap látogatásakor megnyitott elsÅ lap URL-ének végén nem látsz fájlnevet (pl. http://www.enoldalam.hu/), aztán késÅbb is vagy vannak fájlok a végén, vagy továbbra sincsenek. Valójában minden esetben fájlokat nyitsz meg, csak néha a webfejlesztÅk úgy állÃtják be a kiszolgálókat, hogy azok ne mutassák a fájlnevet az URL-ben â ez gyakran egyszerűbbé, könnyebben megjegyezhetÅvé teszi az URL-eket, ami elsÅsorban a felhasználói élményt növeli az oldaladon. Ezzel a témával sem fogjuk foglalkozni a tanfolyamon, mivel meglehetÅsen összetett dolog. A fájlok feltöltésével és a fájl/könyvtár struktúrával részletesen egy késÅbbi leÃrásban fogunk foglalkozni.
A tartalmak tÃpusai
Megnéztük a HTTP kérés/válasz kört, most nézzük át a különbözÅ tÃpusú tartalmakat, amelyekkel az interneten találkozhatsz. 4 részre választottam szét ezeket â egyszerű szöveg, webes szabványok, dinamikus weblapok, és oylan elemek, melyekhez külsÅ alkalmazásokra vagy beépülÅkre van szükség.
Egyszerű szöveg
Az internet megjelenésekor, még a webes szabványok és a beépülÅk elÅtt az internet csak képekbÅl és szövegekbÅl állt â különbözÅ fájlok .txt vagy valami hasonló kiterjesztéssel. Ha találkozott egy egyszerű szöveggel, a böngészÅ csak megjelenÃtette azt, úgy ahogy van, bonyolult eljárások nélkül. Manapság gyakran egyetemek weboldalain találkozhatsz ilyen egyszerű szöveggel.
Webes szabványok
A világháló alapvetŠépÃtÅkockája a három fÅ webes szabvány â a HTML (vagy XHTML, de ebben a leÃrásban ez most lényegtelen), a CSS és a JavaScript.
A HTML, mint âhiperszöveg jelölÅ nyelvâ már a nevében érzékelteti a saját rendeltetését. A HTML-t régebben arra használták, hogy dokumentumokat tegyenek közzé, megadják ezek tartalmát és a felépÃtését, és definiálják a dokumentum különbözÅ részeit (ezekben tárolják az összes weblap szövegét és más elemeit). A weblapok különbözÅ részeinek azonosÃtásához elemeket használ.
A CSS (egymásba ágyazott stÃluslapok) teljes hozzáférést nyújt egy elem megjelenésének beállÃtásához. Például nagyon egyszerűen, egyetlen stÃlus deklarációval beállÃthatod, hogy minden paragrafus legyen dupla sorközű (line-height: 2em;), vagy hogy minden második szintű cÃmsor legyen zöld (color: green;). Rengeteg elÅnye van annak, ha szétválasztod a tartalmat a formázástól, ezzel bÅvebben a következÅ leÃrásban fogunk foglalkozni. A HTML és a CSS közös használatát a 2. ábrán mutatjuk be, amelyen bal oldalon a sima HTML kódot láthatod formázás nélkül, mÃg jobb oldalon pontosan ugyanazt a HTML-t, de már CSS stÃlusokkal kiegészÃtve.
2. ábra: Sima HTML a bal oldalon, HTML és CSS stÃlusok együtt a jobb oldalon.
Végül, a JavaScript dinamikus funkciókat biztosÃthat a weblapodhoz. JavaScript segÃtségével olyan kis programkódokat Ãrhatsz a weblaphoz, amelyek a kliens számÃtógépén fognak lefutni, és nincs szükség semmilyen speciális szoftver telepÃtésére a kiszolgálón. A JavaScript lehetÅséget ad arra, hogy néhány egyszerű funkcionalitást megvalósÃthass a weblapon, és interaktÃvvá tehesd, de természetesen vannak korlátai, amelyek a szerveroldali programozási nyelvekhez és a dinamikus weboldalakhoz vezetnek tovább.
Dinamikus weboldalak
Néha böngészés közben olyan oldalakra találhatsz, amelyeknél a weblapok kiterjesztése nem .html, hanem .php, .asp, .aspx, .jsp vagy valami más különös kiterjesztés. Ezek mind példák a dinamikus webtechnológiákra, ezekkel olyan weboldalakat lehet készÃteni,amelyeknek van egy dinamikusan változó része â egy olyan kód, amely eredményeket szolgáltat a különbözÅ bemenetekre (például adatbázisból, űrlapról vagy más adatforrásból). EzekrÅl bÅvebben a statikus kontra dinamikus oldalak alatt beszélünk majd.
Formátumok más alkalmazásokhoz és beépülÅkhöz
Mivel a webböngészÅk alapvetÅen csak néhány megadott webes szabvány értelmezésére vannak felkészÃtve, Ãgy ha az URL egy komplexebb fájlformátumra mutat, vagy egy olyan weboldalra, amelyiknek beépülÅkre van szüksége, akkor az ilyen tartalmat letöltheted, vagy a beépülÅk használatával (és ha szükséges, telepÃtésével) megnyithatod a böngészÅben. Például:
Ha találsz egy Word dokumentumot, egy Excel fájlt, egy PDF-et, egy tömörÃtett fájlt (pl. ZIP vagy SIT), egy komplex képet (pl. Photoshop PSD), vagy más olyan fájlt, amelyet a böngészÅ ânem értâ, akkor a böngészÅ az esetek többségében fel fogja ajánlani, hogy töltsd le vagy nyisd meg a fájlt a hozzárendelt alkalmazással. Mind a kettÅ hasonló megoldás, mivel a fájlt mindkét esetben le kell tölteni, és csak egy speciális alkalmazással nyithatod meg a böngészÅn kÃvül.
Ha olyan weboldalt találsz, amelyik tartalmaz egy Flash videót, egy MP3-at vagy más zeneformátumot, MPEG vagy más videoformátumot, akkor a böngészÅ ezt képes neked a weboldalon lejátszani, ha a szükséges beépülÅ telepÃtve van. Ha nincs, akkor a böngészÅ megkérhet a kapcsolódó beépülÅ letöltésére és telepÃtésére, vagy az elÅzÅ ponthoz hasonlóan felajánlja a fájl letöltését és megnyitását egy másik alkalmazásban.
Statikus kontra dinamikus oldalak
Szóval mik is azok a statikus és dinamikus weboldalak, és mi a különbség közöttük? Hasonlóan egy doboz csokoládéhoz, minden azon múlik, hogy mivel vannak megtöltve.
Egy statikus weboldal egy olyan website, ahol a tartalom, a HTML és a képek mindig statikusak, változatlanok â minden látogatónak pontosan ugyanazt küldi el minden alkalommal, kivéve azt az esetet, ha a weboldal készÃtÅje gondol egyet, és megváltoztatja a lapot magán a kiszolgálón. A cikk nagy részében errÅl az esetrÅl volt szó.
A dinamikus oldalak ezzel szemben, bár a tartalom a kiszolgálón változatlan, az egyszerű HTML mellett dinamikus kódot is tartalmaznak, amely bizonyos információktól függÅen más és más adatokat jelenÃthet meg. Nézzünk egy példát: nyisd meg a www.amazon.com oldalt a böngészÅdben, és keress rá 5 különbözÅ termékre. Az Amazon nem 5 különbözÅ weboldalt küldött neked eredményként; mind az 5 esetben ugyanazt az oldalt küldte át, csak más és más dinamikus információkkal feltöltve. A különbözÅ információkat egy adatbázisban tárolja, amely kérésre kiadja a releváns adatokat, és átadja a webszervernek, hogy az elküldhesse a dinamikus lapot.
Ãrdemes még megjegyezni a dinamikus oldalakkal kapcsolatban, hogy a kiszolgálón speciális szoftvereket kell telepÃteni a használatukhoz. MÃg a normál statikus HTML fájlok kiterjesztése .html, addig a speciális dinamikus oldalak kiterjesztése ettÅl eltér, mivel a kiterjesztés alapján a kiszolgáló látni fogja, hogy további módosÃtásokat kell végrehajtania a fájlon, mielÅtt elküldi azt a kliensnek (például fel kell töltenie egy adatbázisból). A PHP fájlok például .php kiterjesztést kapnak.
Több dinamikus programozási nyelvbÅl is lehet választani, megemlÃtettük például a PHP-t, de többek között ilyen még a Python, a Ruby on Rails, az ASP.NET és a Coldfusion. Ezeknek a nyelveknek nagyjából ugyanolyan lehetÅségeik vannak, például adatbázis-elérés, információ validálása, de ezeket különbözÅ módokon teszik meg, Ãgy vannak elÅnyeik és hátrányaik is. Minden attól függ, hogy mi felel meg jobban a számodra.
Ezen a kurzuson nem fogunk foglalkozni a dinamikus nyelvekkel, de megadunk néhány referenciát, ha szeretnél errÅl a témáról többet megtudni:
- Rails: Fernandez, Obie. (2007), The Rails Way. Addison-Wesley Professional Ruby Series.
- Rails screencasts
- PHP: Powers, David (2006), PHP Solutions: Dynamic web development made easy, friends of ED.
- PHP Online dokumentáció
- ASP.NET: Lorenz, Patrick. (2003). ASP.NET 2.0 Revealed. Apress.
- ASP.NET: online ASP.NET dokumentáció és ismertetÅk.
Ãsszefoglaló
Ebben a részben benéztünk a kulisszák mögé, hogy hogyan működik valójában az internet. Azonban a felmerült témákban csak a felszÃnt kapargattuk meg, viszont arra jó volt, hogy egy távolabbi perspektÃvából láthasd, hogyan kapcsolódnak össze és hogyan működnek együtt a különbözÅ elemek. Még sokat kell tanulnod arról, hogy hogyan épül fel a HTML jelölés, a CSS és a JavaScript, és éppen ebben az irányban megyünk tovább: a következÅ cikk fÅ témája a a HTML, CSS és JavaScript alapú szabványos modellezés lesz, majd megnézünk egy példa weblapot is.
Tesztkérdések
- Mi az a HTML és a HTTP? Mi a különbség közöttük?
- Mire szolgálnak a webböngészÅk?
- Nézz körül az interneten, és próbálj meg 5-10 perc alatt minél többféle tartalmat találni: egyszerű szöveget, képeket, HTML-t, dinamikus oldalakat (PHP-t és .NET-es aspx lapokat), PDF-et, Word dokumentumokat, Flash videókat, stb. Próbáld ezeket megnyitni, és gondold végig, hogy a böngészÅd milyen módon jelenÃti meg ezeket a számodra.
- Mi a különbség a statikus és a dinamikus weblapok között?
- Keresd meg a HTTP hibák listáját, válassz ki belÅlük 5-öt, és magyarázd meg, hogy ezek mit jelentenek.
- ElÅzÅ leÃrás â Az internet és a web története, a webes szabványok evolúciója
- KövetkezÅ leÃrás â A webes szabványok modellje â HTML, CSS és JavaScript
- Tartalomjegyzék
A szerzÅrÅl
Jonathan Lane az Industry Interactive vezetÅje, amely webfejlesztéssel, valamint webalkalmazások fejlesztésével foglalkozó cég Kanadában. A webfejlesztéssel a Lethbridge Curriculum Re-Development Center Egyetemen kezdett foglalkozni sok évvel ezelÅtt mint webes projekt koordinátor.
A Flyingtroll oldalon blogol, és jelenleg a Mailmanagr-t fejleszti, ami egy email interfész a Basecamp projekt management alkalmazáshoz.
