Kas per velnias yra tas informacijos greitkelis apie kurį šaukia
visas pasaulis? Jei tai "Internet", - kažko neramu.
Jei jame siautėti galės kiekvienas Martynas,
Eimis ar Antanas, - "Internet" pasidarys visokiausio plauko
grupių pagrindinė susitikimų ir vartotojų terorizavimo vieta.
Jehovistai ir satanistai ir kitos nusibodę sektos, neo-komunistai
ir neo-fašistai ir nesubrendę seksualiniai maniakai jau dabar
plūsta į šiuos kol kas "laisvus plotus".
Pasipylė krūvos straipsnių "Internet" tema. Nežinau, kaip kitiems, tačiau
atrodo, kad jie labai paviršutiniški ir dažniausiai poprastės kokybės.
Nesiveldami į bergždžias diskusijas, pabandykime pažvelgti, kaip
kuriami "namų puslapiai" "Web" serveriams.
"Web" buvo sukurta kaip paprasta vartotojo sąsaja nardymui "Internet"
tinkle. Tačiau grožis sukelia papildomų problemų ryšiams - net suspausti
piešinukai kartais užima kelis ar keliolika kilobaitų. Tai nebus taip
baisu, kai kiekvienas galės turėti nuosavą ISDN liniją. Tačiau dabar
daugelis vis dar tebeplauko su 14,4 kilobodų burlente. Kaip perduoti
šiuos kilobaitus, kad nuo laukimo nepražiltum?
Taip neatsitinka, nes "Web" puslapis nėra perduodamas visas iš karto.
Jis išskaidomas į keletą porcijų - tranzakcijų (tranzakcija yra
informacinių technologijų terminas, reiškiantis, kad reikia atlikti
keletą veiksmą laikant juos viena nedaloma operacija. Jei nepavyko atlikti
kokio nors vieno veiksmo, - neįvyko visa tranzakcija).
Pagrindinė idėja kad pirmiausia atkeliauja tekstinė informacija, kuri
nurodo, kokio tipo bus piešinys ir kur jis yra serveryje.
Peržiūros programa ("browser") gali greitai nupiešti pagrindinius elementus,
o piešinius ištraukti po to atskirai. Kol tai vyksta, vartotojas gali
skaityti tekstą ar netgi nušokti į kitą puslapį. Šiuo atveju peržiūros
programa "užmirš", kad ji negavo kažkokio ten piešinuko.
Kad suprastume, kaip tai vyksta, trumpai pažiūrėkime, kaip vyksta darbas.
Kai "užkuriate" savo peržiūros programą ir kviečiate mėgstamiausią
"Web" puslapį, Jūsų programa ("klientas") pradeda tranzakciją su kitu
PĮ "gabalu" ("serveriu"), veikiančiu kažkokiame kompiuteryje kažkur ten
"Internet" tinkle. "Web" serverį nurodote "Internet" URL
adresą. Tai keista eilutė, pvz.,
"http://www.microsoft.com/corpinfo/press/1996/jan96/t120rel.htm"
URL vienareikšmiškai aprašo "Internet" resursą. Jis susideda iš
dviejų dalių: schemos ir specifinės schemai dalies.
Schema nurodo metodą specifinei komponentei paimti. "Web" puslapiams
tai HTTP - pranešimų protokolas, kurį naudodami kalbasi "Web" klientas
ir serveris. Kitos schemos yra FTP, "Wais" ir "Gopher".
Likusios URL dalies formatas priklauso nuo schemos. HTTP tai
"savininko" serverio vardas (pavyzdyje "www.microsoft.com") ir
visas (nurodant visus katalogus) HTML failo, aprašančio "Web" puslapį, vardas.
Tas pats "Web" serveris gali turėti kelias schemas, kurių kiekviena
jungiama per atskirą uostą. Nutylint visi HTTP klientai atplaukia
į uostą, kurio numeris 80 (o pvz., "Gopher" - 70).
Kai serveris patvirtina apie ryšio nustatymą, klientas pasiunčia užklausą
informacijai (dažniausiai "namų puslapio") ir laukia atsakymo. laikydamas,
kad viskas eina tiesiog šauniai, serveris pasiunčia reikalautą informacijos
porciją ir užbaigia tranzakciją laukdamas kito seanso.
Pas klientą reikalai dar tik įsivažiuoja. Įprasta, kad "namų puslapis"
turi neorodų į piešinius. Analizuojant šį puslapį, klientui gali prireikti
papildomų tranzakcijų su serveriu, kad "ištrauktų" papildomus resursus,
pvz., piešinius. serverio požiūriu, tai visiškai naujas ir nepriklausomas
nuo ankstesnio ryšio seansas. Jis suranda reikalinga piešinio failą ir
jį pasiunčia klientui.
Vos ne kiekvienas jau išgirdo magišką žodį "Internet", o ne vienas ir ne
du jau nardo po pasaulinių "Web" (WWW) vandenis. Šie žmonės mąsto
informacijos paieškos sąvokomis, kurios panašios į madų žurnalų vartymą.
Dažniausiai susiduriama su "Web" peržiūros programomis: "Netscape",
"Mosaic" ar "Microsoft Internet Explorer", kuri įeina į "Windows 95 Plus!"
rinkinį. Bakst čia, bakst ten ir peršokate nuo vieno "Web" puslapio
prie kito (o kur pakliuvom kartais ir neatsimenam). Viskas paprasta ir
lengva! Bet kas vyksta anapus uždangos? Iš kur ir kaip Jūsų kompiuteris
ištraukia tuos puslapius? Pažiūrėkime ne naudotojo, o "Web" puslapio
kūrėjo akimis.
Informacijos visada reikia skubiai ir daug.
Sunku ir patikėti, kad
pats "Web" buvo sukurtas CERN'e (Europos branduolinių tyrimų organizacijoje).
O ar neatrodo, kad didelius daiktus visada padaro tik mažos grupelės.
Štai "Unix" sukūrė du žmonės, su "Mosaic" dirbo nuo 2 iki 4-ių, o
"Java", kurią minime šiame puslapyje, - ne daugiau penkių.
Ir net "Mac" sistemą vystė maždaug tuzinas. O juk prisiminus -
DOS taigi sukūrė VIENAS žmogus.
Ir vienas lauke ne tik karys, bet ir ištisa armija!
Eilutė, prasidedanti "img src", nurodo, piešinuką. Klientas turi pradėti
naują tranzakciją su serverio jo parsisiuntimui. Kol piešinys "važiuoja",
peržiūros programa piešinuko vietoje išveda "Aš dar siunčiamas...".
O toliau yra dvi nuorodos į kitus URL. "a href=mailto" reiškia, kad nurodytu
adresu reikia pasiųsti laišką. O antroji nuoroda yra kitas "Web" puslapis
kitame serveryje. Peržiūros programa turi užtikrinti, kad bus atlikti
reikalingi veiksmai, kai vartotojas pabrauktose vietose spustels pelės mygtuką.
Ir dar daug kitų galimybių slepia ši kalba. Bet ir paprasto pavyzdėlio
pakanka, kad suprastume, kad galima sukurti įspūdingus puslapius vien
darydami nuorodas į piešinukus ir kitus "Web" serverius.
Ir reikia būti labai atsargiam. Prasidėjus "Internet" bumui HTML standartas
nepaprastai greitai vystosi (šiuo metu oficialiai yra 2.0 versija) apaugdamas
vis naujomis galimybėmis. Tačiau jau dabar daugelis peržiūros programų
įtraukė juodraštinius 3.0 versijos išplėtimus.
O tuo tarpu nerkime dar truputį giliau. HTTP serveris turi žinoti du pagrindinius
dalykus: kokios informacijos nori klientas (ją aprašo HTML) ir kokius veiksmus
atlikti ją pateikiant. Pagrindinis įrankis yra GET komanda, pvz.,
GET debesys.jpg
Tačiau dabartinė HTTP versija leidžia klientui perduoti ir papildomą
informaciją tiksliau aprašančią jo galimybes, pvz., kokius grafinius
formatus jis sugeba priimti (ir nesiųsti, pvz., JPEG piešinių).
Atsakydamas serveris pasiunčia antraštę, pvz.,
Kitos eilutės patikslina informaciją, pvz., MIME standartas nurodo perduodamų
duomenų tipą. Štai dar keli leistini tipai:
Paprasčiausias ir seniausias yra CGI ("Common Gateway Interface").
Klientas siunčia parametrus, pvz., "NAME=Jonas Skendelis",
"CreditCard=123456789" ir t.t. Serveris panaudodamas šius kintamuosius
vykdo nuosavas programytes, - dažniausiai "Unix" komandų
failus ("scripts"), kurios naudoja šių kintamųjų reikšmes ir atlieka
reikiamus veiksmus.
"Sun Microsystems" sukūrė "Java" kalbą, kurios pagrindinė galimybė
yra iš serverio paimti programą ir ją vykdyti pas klientą. Programos
įrašomos p-kodu, kuris leidžia vykdyti programą bet kokioje platformoje -
tereikia turėti p-kodo interpretatorių.
(žr. Java" sukūrimo istoriją).
Į ją labai panaši yra ir
garsiosios "Netscape" firmos "LiveScript", tačiau neturi griežtos tipų
kontrolės.
"Web" puslapis iš tikrųjų yra failas HTML formatu, kuris yra specialus
bendresnio SGML variantas. Jis sužavi savo paprastumu ir yra pakankamai
lankstus, kad išgaunant vizualius efektus. Štai kaip yra aprašomas
paprastas "namų" puslapis.
<html>
<head>
<title>Programuotojo užrašai</title>
</head>
<body>
<body backgraund=debesys.jpg>
<h1><center><Sveiki aplankę mane></center></h1>
<hr>
<h3>
<img src="emblema.gif" alt="Aš dar siunčiamas..." align="bottom">
Ar nenorite prenumeruoti <a href="mailto:j.skendelis@amadeus.omnitel.net">
Programuotojo užrašus?</a><p>
O dabar galite aplankyti
<a href="http://www.whidbey.net/~mdixon/win40001.htm">
Windows 95 klausimų, atsakymų ir informacijos DB</a><br>
</h3>
</body>
</html>
Užteko keliolikos eilučių, kad pilnai aprašytume paprastą "Web" puslapį!
"body background" nurodo piešinuką fonui. Perskaičiusi tą eilutę
peržiūros programa ("browser") turi paprašyti, kad serveris jį atsiųstų.
Tačiau galima įjungti režimą, kad fonas nebus naudojamas - ir šiuo failu
linija nebus "apsunkinama".
HTTP/1.0 200 OK
Date Sunday Sun, 11 Feb 1996 23:38:46 GMT
Server: JS_Private/1.0
MIME-version: 1.0
Content-type: image/jpeg
Last modified: Sun, 11 Feb 1996 08:17:53 GMT
Content length: 31504
Iškart po šios antraštės eina 31504 baitų JPEG piešinys. O pirmoji eilutė
nurodė HTTP versiją ir atsakymo kodą. Štai keli dažnesni kodai:
200 - URL surastas, informacija bus perduodama;
404 - URL nesurastas;
503 - serveris neturi galimybių patenkinti užklausą.
Objekto tipas Potipis Aprašas
O pabaigoje trumpai prabėgsiu pro svarbesnius HTTP išplėtimus.
Juk pats HTTP nurodo tik kaip paimti statinę informaciją. Interaktyvioje
terpėje reikia daigiau ir "Web" guru sukūrė daugelį šio metodo išplėtimų.
application msword MS Word dokumentas
application zip PKZIP archyvas
image gif Piešinys GIF formatu
audio wav MS WAV audio įrašas
Anotacijos Java kalboje
Įvadas į Perl kalbą: Kas naudoja Perl?
Tcl kalba