HTML

RobbeR tech és magánblogja

kontakt:RobbeR at RobbeR pont hu

Egyéb publikálások: Elte-IK blogja
saját weboldal: RobbeR.hu

Webisztán

Nincs megjeleníthető elem

Címkék

Indafotós képek

Friss topikok

Linkblog

Az Internet működése laikusoknak 2.rész - a kliens-szerver technológiák

2008.08.23. 15:23 RobbeR

Az előző részben olvashattatok egy HTTP kommunikációt, ami az én böngészőm, és az iwiw szervere között zajlott le. Azt írtátok, hogy ez így elég bonyolult, ezért itt van néhány alapfogalom, saját szavaimmal megfogalmazva:

  • URL - (Universal Resource Locator) vagy másképp fogalmazva internetcím, pl: www.iwiw.hu, http://robber.blog.hu. Az URL-t kell beírni a böngészőbe, hogy elérjünk egy weboldalt.
  • böngésző - (browser) Egy olyan telepített szoftver a számítógépen, aminek segítségével weboldalakat tudunk böngészni, például Internet Explorer, Firefox, stb.
  • HTML - (HyperText Markup Language) Egy egyszerű programozási nyelv (leírónyelv), amely alkalmas egy weboldal kinézetének szövegesen történő leírására. A HTML kódot bárki megtekintheti a böngésző Nézet/forrás menüjében. Példa HTML kódra:
    <html>
     <head>
     <title>Fejléc szövege</title>
     </head>
     <body>
     Ez itt egy szöveg a weboldalon<br>
     <b>Ez itt egy vastagított szöveg a weboldalon</b>
     </body>
    </html>
  • fordító - (interpreter) A böngészőbe beépített HTML fordító, ez készíti el a weboldalt a HTML kód alapján.
  • HTTP - (HyperText Transfer Protocol) Egy protokoll, ami tartalmaz egy formális nyelvet (előre meghatározott sablonnyelvet) a böngésző és a szerver kommunikációjára.
  • webszerver - Egy olyan -rendszerint komoly hardveres sebességgel és memóriával rendelkező - számítógép, amely kiszolgálja a klienseknek a kért weboldalt. Egy webszervert célszerű nagyon gyors internetkapcsolattal rákötni a webre (kb 100 megabit/sec), tekintve, hogy a rajta lévő weboldal(aka)t akár több száz/ezer/tízezer gép is szeretné letölteni egyszerre. Pl: A webaudit mérése alapján, 2008 január 21-én az IWIW szerverein több mint 70millió oldalletöltés volt. Ez nem 70 millió külömböző látogatót jelent, egy ember akár több oldalletöltést is előidézhet az iwiwen. Amikor rákattintunk pl az "Üzenetek" menüpontra, akkor is HTTP kommunikáció (és oldalletöltés) indul el, hiszen az olyan, mintha az IWIW üzenetek weboldal URL-jét írnánk be a böngészőbe (ami nem egyezik a Főoldal, vagy az Ismerőseim menüpont URL-jével). Ez az Olvasónak talán kicsit nagy számnak tűnhet, de vegyük figyelembe, hogy a 70 millió oldalletöltés nem egy szerveren történt (az iwiw több szerveren futtatja rendszerét), és nem egyszerre, hanem elosztva egész nap (ez kb. 800 oldalletöltést jelent másodpercenként). Az ilyen komolyságú weboldalak szervereit légkondícionált, pormentes és biztonsági őrök által őrzött szobában tárolják, és atomnagy coolerek(hűtőventillátorok) vannak rajta, hogy ne füstöljön el egy forgalmas napon.
  •  kliens - Egy mezei számítógépre telepített böngésző, mint pl az enyém, vagy az Olvasóé. Nem csak a böngésző lehet a kliens, de webszerverek esetében leggyakrabban az.

Aki a továbbiakban valamit nem ért (de ennek ellenére mégis érdekli, hogy mi az), annak szívesen válaszolunk (ha tudunk) kommentben/levélben feltett kérdésére. Most a webszerverről fogok írni egy kicsit, nem mintha értenék hozzá, de sokat segít a google és a wikipedia.

Mivel az internetes kommunikáció kétoldali (kliens és szerver), ezért a technológiákat/programozási nyelveket is két részre oszthatjuk. Vannak olyan webhez kapcsolódó programozási nyelvek, amelyek a kliensen fordulnak le, és vannak olyanok, amelyek a szerveren. A már említett HTML-t például a kliens (böngésző) fordítja le, ezért ezt kliens oldali programozási nyelvnek nevezzük. Ilyen nyelvek még a CSS, JavaScript, VBscript, Flash (ezek általában a HTML kiegészítésére/feljavítására/egyszerűsítésére szolgálnak, illetve interaktív weboldalakat lehet velük megvalósítani). Vannak szerver oldali programnyelvek is, amelyeket még a szerver fordít le(értelmez), mint például cgi, PHP, ASP stb. Mivel a kettő közül a szerver oldali technológiákhoz értek jobban, azok közül is a PHP-hez a legjobban (kezdő szinten xD), ezért arról írnék pár szót.

A PHP, másnéven Hypertext PreProcessor célja, hogy a html kódot, amit a szerver a kliens felé küld, feltételek alapján állítja össze. A PHP tehát -a HTML-el ellentétben- már képes döntést hozni. Ha ezt egy egyszerű példán szeretném személtetni, akkor azt mondanám: Adott egy "Kellemes délutánt a látogatóknak!" szöveg a weboldalon, ennek viszont csak akkor van értelme, ha tényleg déután van. PHP-val meg tudjuk oldani, hogy a kód megállapítsa, hogy milyen napszak van, és ezt a "kimenetet" adja, tehát ezt írja be a HTML kódba, amit ezután a kliens felé küld. Ez a következőképpen történik:

HA reggel van
    kimenetre "Jó reggelt a látogatóknak"
HA délután van
    kimenetre "Kellemes délutánt

 Mivel a PHP képes lekérdezni a szerveridőt (a szerveren futó operációs rendszer rendszeridejét), ezért már csak át kell fordítani a fent megfogalmazott "kódot" a PHP által értelmezhető nyelvre, ami így néz ki:

if(date("a",time()) == "am")
    echo "Jó reggelt!";
if(date("a",time()) == "pm")
    echo "Kellemes délutánt/estét";

Egy kicsit elkanyarodva a témától tehát mondhatjuk azt, hogy a programozás a hagyományos értelemben vett utasítások jóldefiniált egymásutánja, amelyeket olyan egységes nyelven kell megírni, amelyet a számítógép is megért. Ha kicsit jobban belemegyünk, akkor viszont ez nem igaz, mert ezt a PHP kódot a szerveren található PHP fordítószoftver még lefordítja gépi kóddá, mert csak a gépi kódot képes értelmezni a webszerver processzora (ahol az utasítások ténylegesen végrehajtódnak). A PHP kódot csak a PHP fordító képes értelmezni. Egy gépi kódban írt program viszont kb így néz ki:

B8 D4 07 00 00 90 48 75 FC C3

Tehát a PHP kód ehhez képest mégiscsak emberibb megfogalmazása egy utasításnak xD.

Visszatérve a PHP-hez, a nyelv alkalmas a szerveren elhelyezett adatbázisok kezelésére is, tehát az olyan weboldalak, ahol felhasználókezelés/fórum, vagy bármi adatmegtartó szolgáltatás van,jó eséllyel használnak adatbázist. (MySQL, PostgreSQL, stb).

A kliens oldali nyelvek, például a JavaScript nem alkalmas adatbáziskezelésre, fájlkezelésre, helyette viszont interaktívvá tudjuk tenni vele a weboldalainkat. Tudunk például eseményekre utasításokat írni, ami azt jelenti, hogy meg tudjuk adni, mi történjen ha a felhasználó bezárja a weboldalt, vagy rákattint egy gombra, stb. A CSS segítségével a HTML tagekhez tartozó definíciókat adhatunk meg, azok kinézetére vonatkozóan.

Létezik viszont egy hibrid technológia, amely ötvözi a kliens és a szerver által nyújtott szolgáltatásokat (és amely ma már minden újabb weboldalon megtalálható, többek között ezen blog admin felülete is így van kivitelezve), az AJAX technológia. Ez a nem olyan rég felfedezett módszer a böngésző egy ActiveX vezérlőjének előnyeit használja fel, ami képes HTTP kérést küldeni, és JavaScriptből vezérelhető (a vezérlő neve XmlHTTPrequest). Ez azt jelenti, hogy egy kattintás eseményre AJAX-al meghívhatunk egy PHP scriptet, amelynek kimenetét le is tudjuk kezelni, szintén Javascriptből. Ha már mindig az iwiw-vel példálózok, akkor itt egy AJAX példa az iwiw-ről: Ha rákattintunk az emberek neve alatti "Több info >>" feliratra, akkor -netsebességtől függően- kis késéssel megjelennek extra információk a juzerről. Ekkor a háttérben egy AJAX kérés valósul meg, ami lekéri a szerverről az extra információkat, a szerver oldali kód az adatbázisból a kimenetre teszi, majd a JavaScript a szerver kimenetét az oldal megfelelő pontjára másolja.

Így visszaolvasva ezt a posztot, egy laikus még annyit se fog belőle érteni, amennyit az előzőből, de sebaj, valakinek majdcsak jó lesz. Egyébként szívesen válaszolok bármilyen kérdésre kommentben, vagy bárhol, ha valakit érdekel a dolog, és persze ha tudok rá válaszolni.

RobbeR

Szólj hozzá!

Címkék: tech szerver kliens

A bejegyzés trackback címe:

https://robber.blog.hu/api/trackback/id/tr27629234

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása