1.1 Internetistä lyhyesti Alkuperä: - ARPAnet 1960-luvun loppu, 1970-luvun alku - Verkon luotettavuus - ARPA organisaatioit (Advanced Research Projects Agency) - BITnet, CSnet 1970-luvun loppu ja 1980-luvun alku - sähköposti ja tiedostojen siirto muihin laitoksiin - NSFnet -1986 - Alunperin muut kuin DOD-rahoitteiset paikat - Yhdisti aluksi viisi supertietokonekeskusta - Korvasi ARPA-netin 1990 mennessä ei-sotilaallisesa käytössä - Yleistyi nopeasti kaikkialla (1990-luvun alkuun mennessä) - NSFnet tuli lopulta tunnetuksi Internettinä. Mikä Internet on? Maailmanlaajuinen tietokoneverkkojen verkko Vuoden 1982 jälkeen kaikki yhteydet ovat käyttäneet alimmalla tasolla TCP/IP:tä TCP/IP piilottaa Internettiin kytkettyjen laitteiden väliset erot 1.2 Maailmanlaajuinen verkko Internetprotokollaosoitteet (IP-osoitteet) - Jokaisella solmulla on ainutlaatuinen numeerinen osoite - Muoto: 32 bitin binääriluku - Uudessa standardissa, IPv6:ssa on 128 bittiä (1998) - Organisaatiot ovat valinneet IP-ryhmät koneilleen - Domainien nimet: - Muoto: hostname.domainiennimet - Ensimmäinen domaini on pienin, viimeinen suurin - Viimeinen domaini määrittää organisaatioon tyypin - Täysin kvalifioitu domaininimi: hostin nimi ja kaikkien domainien nimet - DNS-palvelimet muuntavat täysin kvalifioidut domaininimet IP:eiksi - Ongelma: 1980-luvun puoliväliin mennessä oli keksitty useita eri protokollia, jotka olivat käytössä Internetissä. Niissä oli kaikissa erilaiset käyttöliittymät (Telnet, FTP, Usenet, mailto) Ratkaisumahdollisuus Internetissä käytettyjen eri protokollien lisääntymiseen Alkuperä: Tim Berners-Lee CERN:issä ehdotti maailmalaajuista verkkoa 1989 - Tarkoitus: tutkijoiden pääsy moniin tieteellisiin tietokantoihin omilla koneillaan Dokumentin muoto: hyperteksti - Sivut, dokumentit, lähteet?? Päätettiin, että dokumentit Hypermedia: enemmän kuin pelkkä teksti kuvia, ääntä jne. World Wide Web, vai Internet? Web käyttää vain yhtä protokollaa, http:tä, joka toimii Internetissä (muitakin on, esim. telnet, mailto)
1.3 Verkon selaimet Mosaic NCSA (Illinoisin yliopisto), 1993 vuoden alussa - Ensin käytössä oleva graafinen käyttöliittymä (GUI) johti verkon käytön räjähdysmäiseen kasvuun - Aluksi X-Windows, Unixin alaisuudessa, mutta liitettiin muihin ympäristöihin 1993 lopussa Selaimet ovat asiakkaita ottavat aina ensin yhteyden, palvelimet vastaavat (vaikka joskus palvelimetkin vaativat vastauksen) Useimmat pyynnöt koskevat olemassaolevia dokumentteja ja käyttävät HyperText Transfer Protokollaa (HTTP) Osa pyynnöistä koskee kuitenkin ohjelman suoritusta siten että tuloste palautetaan dokumenttimuodossa 1.4 Verkon palvelimet Vastaavat selaimien pyyntöihin joko olemassaolevalla dokumentilla tai dynaamisesti tekemällä uuden dokumentin Selain-palvelin yhteyttä ylläpidetään useammalla kuin yhdellä pyyntö-vastaus-kierroksella Kaikki kommunikaatio selaimen ja palvelimen välillä tapahtuu HyperText Transfer Protokollalla (HTTP) Verkkopalvelimet toimivat taustaprosesseina käyttöjärjestelmässä - valvovat hostin yhteysporttia ja hyväksyvät HTTP-viestit, kun niitä tulee Kaikki nykyiset verkkopalvelimet tulevat joko 1. alkuperäisen version pohjalta (CERN) 2. toisen version pohjalta (NCSA) Verkkopalvelimella on kaksi päähakemistoa: 11. Document root (palveltavat dokumentit) 12. Server root (palvelinjärjestelmäohjelmistot) Asiakkaat saavat epäsuorasti yhteyden document root:iin - Palvelimen asetustiedosto määrää sen todellisen sijainnin - Pyynnöt paikannetaan todellisen sijainnin mukaan Virtuaaliset dokumenttipuut Virtuaaliset isännät ( hostit ) Välipalvelimet Verkkopalvelimet tukevat nyt myös muita Internet protokollia Apache (avoin lähdekoodi, nopea, luotettava) Direktiivit (käytön kontrolli) ServerName, ServerRoot, ServerAdmin, DocumentRoot, Alias, ReDirect, DirectoryIndex, UserDir asetukset konfiguraatiotiedostoon httpd.conf IIS Asetuksia ylläpidetään windows GUI:n kautta
1.5 URL:it Yleinen muoto: skeema: objekti-osoite Skeema on usein yhteysprotokolla, kuten telnet tai FTP http-protokollalle objekti-osoite on täydellisesti kvalifioitu domainin nimi/dokumenttipolku Tiedostoprotokollalle tarvitaan vain dokumenttipolku Hostin nimi voi sisältää portin numeron, kuten: zeppo:80 (80 on http oletus - niin tämä tarpeeton) URL:ssa ei voi olla tyhjää eikä erikoismerkkejä (puolipisteitä, pilkkuja ) Dokumenttipolku annetaan osapolkuna - palvelin tuottaa loppuosan konfiguraationsa mukaisesti Jos dokumenttipolku loppuu / -merkkiin, kyseessä on hakemisto 1.6 Multipurpose Internet Mail Extensions (MIME) Sähköpostin käytettävyyttä laajentava standardi Käytetään palvelimen palauttaman tiedoston muodon täsmentämiseen selaimelle (palvelin liittää dokumentin alkuun) Tyyppierittelyt: - Muoto: tyyppi, alatyyppi - Esimerkit: text/plain, text/html, image/gif, image/jpeg Palvelin saa tiedon tyypistä pyydetyn tiedoston nimen loppuliittestä (.html jne.) Selain saa tyypin suoraan palvelimelta Kokeelliset tyypit: Alatyyppi alkaa x- - esim. video/x-msvideo Kokeelliset tyypit vaativat, että palvelin lähettää avustavan tai plugin sovelluksen niin että selaimella ei ole ongelmia tiedoston kanssa 1.7 HyperText Transfer Protocol - www-sivujen siirtojärjestelmä Protokolla, jonka avulla kommunikaatio verkossa tapahtuu Pyyntö: - Muoto: HTTP-metodi URL:n domainiosa protokollaversio Otsikkokentät Tyhjä rivi Viestin runko - Esimerkki pyynnön ensimmäisestä rivistä: GET /cs.uccp.edu/degrees.html HTTP/1.1 Eniten käytetyt metodit: - GET hakee dokumentin - POST näyttää dokumentin käyttämällä rungossa olevaa tietoa - HEAD hakee vain dokumentin otsikon - PUT tallentaa uuden dokumentin palvelimelle - DELETE poistaa dokumentin palvelimelta Neljä otsikkokenttäkategoriaa: - yleinen, pyyntö, vastaus ja kokonaisuus ( entity ) Yleiset pyyntökentät: Accept: text/plain Accept: text/* If-Modified_since: date Yleiset vastauskentät: content-length: 488 content-type: text/html Kommunikointi HTTP:llä ilman selainta > telnet blanca.uccs.edu http GET /respond.html HTTP/1.1 Host: blanca.uccs.edu
Vastausvaihe: - Muoto: statusrivi, vastausotsikkokentät, tyhjä rivi, vastausrunko - Statusrivimuoto: HTTP-versio, statuskoodi, selitys - Esimerkki: HTTP/1.1 200 OK (Nykyinen versio on 1.1) - Statuskoodi on kolminumeroinen luku: ensimmäinen numero kertoo yleisen statuksen: 1 -> tiedollinen 2 -> onnistuminen 3 -> uudelleenohjaus 4 -> virhe asiakkaan ( klientin ) päässä 5 -> virhe palvelimen päässä - Sisältötyyppinen otsikkokenttä vaaditaan Esimerkki täydellisestä vastausotsikosta: HTTP/1.1 200 OK Date: Tues, 18 May 2004 16:45:13 GMT Server: Apache (Red-Hat/Linux) Last-modified: Tues, 18 May 2004 16:38:38 GMT Etag: "841fb-4b-3d1a0179" Accept-ranges: bytes Content-length: 364 Connection: close Content-type: text/html, charset=iso-8859-1 Tyhjä rivi heti otsikon jälkeen sekä pyynnössä että vastauksessa 1.8 Web-ohjelmoijan työkalut XHTML Kuvailemaan dokumentin yleistä muotoa ja ulkoasua XHTML-dokumentin sisältö ja rajoitukset - Rajoitukset (kontrolli) tageja ja niiden ominaisuuksia - Tagit, tuntomerkit rajoittavat usein sisältöä ja täsmentävät sitä, miten sisältö tulisi esittää dokumentissa - Ominaisuudet (attribuutit) antavat lisätietoa tagin sisällöstä Työkalut XHMTL-dokumentin luomiseen - XHTML-editorit helpottavat dokumentin luomista - Pikakuvakkeet tagien nimiin, oikeinkirjoitustarkastukseen ym. - WYSIWYG XHTML-editorit - XHTML täytyy tuntea, jotta voi luoda XHTML-dokumentteja Kytkennät - Integroitu työkaluihin, kuten tekstinkäsittelyohjelmiin, muuntaa ne tehokkaasti WYSIWYG XHTML editoreiksi Suodattimet - Muuntaa muussa muodossa olevat dokumentit XHTML:ksi Kytkentöjen ja suodattimien edut - Muilla työkaluilla tehdyt dokumentit voidaan muuntaa XHTML-dokumenteiksi - Voit käyttää sellaista työkalua, jonka jo tunnet, vaikka tarkoituksena on tuottaa XHTML-dokumentti Kytkentöjen ja suodattimien haitat - Molempien XHTML-tuloste ei ole täydellinen, täytyy säätää - XHTML ei välttämättä ole standardinmukainen - Kaksi versiota dokumentista; eivät välttämättä ole yhdenmukaisia ja voi olla vaikea synkronoida
XML: (A meta-markup language) - Metamerkintäkieli - Käytetään, kun luodaan uutta merkintäkieltä tiettyä tarkoitusta tai alaa varten - Tageilla voi olla merkitys, koska ne on luotu tietyille aloille - Ei yksityiskohtia esityksestä - Yksinkertainen ja universaali tapa esittää minkälaista tekstitietoa tahansa JavaScript - Asiakaspuolen HTML-sulautettu skriptikieli - Ainoastaan syntaksilla on tekemistä Javan kanssa - Dynaamisesti tyypitetty ja ei-oliopohjainen - Mahdollistaa pääsyn HTML-dokumenttien osiin ja niiden dynaamiseen muuttamiseen Java - Yleinen olio-ohjelmointikieli - Perustuu C++:aan, mutta yksinkertaisempi ja turvallisempi - Keskitymme appletteihin (sovelmat), servletteihin ja JSP:hen PERL - Mahdollistaa palvelinpuolen suoritusta HTML-dokumenteille CGI:n kautta - Perl on hyvä CGI-ohjelmoinnissa, koska: - Suora pääsy käyttöjärjestelmän toimintoihin - Tehokkaat merkkien ja merkkijonojen hahmontunnistustoiminnot - Pääsy tietokantajärjestelmiin - Perl on varsin riippumaton ympäristöstä ja sitä on liitetty useisiin eri ympäristöihin - Perliä käytetään paljon muussakin kuin CGI-ohjelmoinnissa PHP - Palvelinpuolen skriptikieli - Vaihtoehto CGI:lle - Muistuttaa JavaScriptiä - Erinomainen tietokantojen hakemiseen verkossa