sfnet.viestinta.www -ryhmän VUKKsfnet.viestinta.www - VUKK
Vastauksia useimmin kysyttyihin kysymyksiin v2.03
Sisällysluettelo
Yleistä
Mikä on svwww?
Mikä tämä vukk on?
Miten tähän vukkiin viitataan?
Ketkä ovat tehneet tämän Vukk:n?
Mistä svwww:ssä voi keskustella?
Mistä svwww:ssä ei voi keskustella?
Miten ilmoitan omista sivuistani svwww:ssä?
Mistä löydän tietoa www:tä koskevista aiheista?
Termistö
Mikä on HTML?
Mikä on SGML?
Mikä on XHTML?
Mikä on XML?
Mitä eroa on HTML:llä ja XHTML:llä?
Mikä on CSS?
Mikä on WML?
Mitä ovat HTTP ja HTTPS?
Mikä on dokumenttityyppi (doctype)?
Web-grafiikka
Miten värit ilmaistaan webissä?
Mikä on web-väripaletti?
Mitä eroa on gif:llä, jpg:llä ja png:llä?
Miten voin liittää sivuilleni vektorigrafiikkaa?
Sivujen luominen
Mitä HTML-editoria kannattaa käyttää?
Miten voin houkutella ihmisiä sivuilleni?
Miten voin estää sivuni lähdekoodin näkymisen?
Ulkopuoliset resurssit
Mistä saan ilmaista kotisivutilaa?
Mistä saan vieraskirjan?
Mistä saan sivuilleni kävijälaskurin?
Entäs laskurien luotettavuus?
Miten teen sivulleni palautelomakkeen?
Miten saan sivuni näkymään hakukoneissa?
Miten estän sivujeni näkymisen hakukoneessa?
Selaimet
Mitä selaimia on käytössä?
Miten eri selaimet tukevat CSS:ää?
Miksi selain tulostaa tiedoston sotkuna selausikkunaan?
Sivujen tarkastaminen ja validointi
Mikä on HTML-validaattori?
Kannattaako validaattoria käyttää?
Miksi validaattori herjaa sisäkkäisistä listoista?
Miksi validaattori herjaa &-merkeistä joissain URLeissa?
Web-ohjelmointi
Mitä on SSI (SHTML)?
Mitä on CGI?
Mitä ovat ASP ja PHP?
Mitä on Javascript?
Mitä on Java?
Web-palvelimet
Mitä web-palvelimet ovat?
Miten teen salasanasuojauksen sivuilleni?
Miten saan selaimen ohjautumaan automaattisesti uudelle sivulle?
Miten kerron palvelimelle tiedostojen Mime-tyypin?
Web-tekniikka
Miten voin määrittää mailto-linkillä sähköpostin otsikon?
Miten teen kehykset ilman reunuksia?
Miten tehdään vaihtuva kuva JavaScriptillä?
Miten tehdään linkki ilman alleviivausta?
Milloin määreen arvon ympärille tarvitaan lainausmerkit?
Mitä ovat META-elementit keywords ja description?
Miten saa Netscape-selaimen näyttämään tyhjän taulukon solun?
Yleistä
Tässä luvussa kerrotaan yleisiä asioita tästä VUKK:sta ja
sfnet.viestinta.www-uutisryhmästä.
Mikä on svwww?
Svwww on lyhenne uutisryhmän sfnet.viestinta.www nimestä. Mainittu ryhmä
puolestaan on Sfnet-hierarkiaan kuuluva uutisryhmä, jossa keskustellaan www:hen
liittyvistä asioista. Ryhmällä on myös kaksi alaryhmää,
sfnet.viestinta.www.palaute ja sfnet.viestinta.www.uutuudet.
Lisätietoja uutisryhmistä yleensä löydät esimerkiksi Vip Oy:n news-oppaasta.
Kannattaa myös tutustua ryhmäkuvauksiin, jotka kertovat ryhmien sisällöstä.
Svwww:n ja sen alaryhmien kuvaukset löytyvät Sfnetin sivuilta. Ennen ryhmään
kirjoittamista kannattaa myös perehtyä Jukka Korpelan kirjoittamaan
Nyysioppaaseen - tai ainakin sen suppeampaan etikettiin painottuneeseen
versioon. Lisäksi on tietysti järkevää lukea tämä VUKK-tiedosto.
Mikä tämä vukk on?
Vukk on lyhenne sanoista Vastauksia Usein Kysyttyihin Kysymyksiin (engl. FAQ).
Tähän tiedostoon on kerätty vastauksia yleisimpiin ryhmässä kysyttyihin
kysymyksiin sekä linkkejä muihin tietolähteisiin. Koska iso osa varsinkin
ensikertalaisten esittämistä kysymyksistä on jo valmiiksi vastattuna tässä
dokumentissa, kannattaa tähän kerätty materiaali lukaista läpi ennen kyselyitä.
Näin saat vastauksen nopeammin ja säästät ryhmäläisten huomiota uusiin
kysymyksiin.
Tässä vukk:ssa ei vastata kaikkiin kysymyksiin kattavasti. Tarkoitus on tarjota
kysymyksiin tiiviit asiapitoiset vastaukset ja linkkejä jatkolukemistoon. Vukkia
laajennetaan jatkuvasti kattamaan uudet kysymykset. Mikäli sinulla on
parannusehdotuksia, voit lähettää ne ylläpitäjälle. Älä kuitenkaan lähetä
kysymyksiä vastattavaksi ylläpitäjälle, vaan osoita ne svwww-ryhmälle. Tällöin
muutkin hyötyvät vastauksesta, ja se voi ennen pitkää löytää tiensä vukkiin.
Vukkia ylläpidetään kahtena versiona: yhtenä isona html-tiedostona sekä
kysymyksittäin jaettuna. Versioiden sisältö on identtinen. Uusimmat versiot
löydät aina vukk:n kotisivuilta osoitteesta
http://www.heikniemi.net/svwww-vukk/. Tehdyt päivitykset kirjataan
muutostiedostoon.
Miten tähän vukkiin viitataan?
Suositeltavin tapa on viitata yksittäisen kysymyksen sisältävään sivuun.
URL-osoitteet ovat muotoa http://www.heikniemi.net/svwww-vukk/k3.html, jossa k:n
ja .html:n välissä sijaitseva kysymysnumero vaihtelee (esimerkkinä käytetty
osoite viittaa tähän kysymykseen, joka siis on numero 3).
Ketkä ovat tehneet tämän Vukk:n?
Vukkia ovat koostaneet ajan saatossa useat henkilöt. Tällä hetkellä vukkia
toimittaa Jouni Heikniemi, jolle voi lähettää sähköpostia osoitteeseen
jouni@heikniemi.net.
Ryhmän vukk:n synnytti vuonna 1999 Sami Lempinen, joka myös ylläpiti sisältöä
vuoden 2001 syksyyn asti. Häntä avustivat urakassa mm. Heikki Kantola, Teemu
Nurminen, Kai Puolamäki ja Jere Käpyaho. Heidän lisäkseen useat svwww:n lukijat
luovuttivat omia kirjoituksiaan vanhan vukk:n osiksi.
Mistä svwww:ssä voi keskustella?
Ryhmäkuvauksen määritelmän mukaan ryhmässä keskustellaan "seitistä (WWW), siihen
liittyvistä ohjelmista, standardeista ja käytännöistä sekä seitin tarjoamista
palveluista" . Tämä tarkoittaa sitä, että keskustelu on sallittua paitsi
teknisistä asioista, myös webistä ja sen käytöstä yleensä.
Ryhmään sopivat hyvin keskustelut verkkopalveluiden laadusta (ks. kuitenkin
joitain poikkeuksia), www-tekniikoista, selaimista, www-grafiikasta sekä www:n
kehityksestä yleensä. Kannattaa kuitenkin huomioida, että kaikki mikä jotenkin
etäisesti liittyy webiin ei välttämättä ole parhaassa paikassaan svwww:ssä.
Ryhmävalinnoissa kannattaa käyttää harkintaa ja ohjata keskustelua edelleen
sopiviin ryhmiin tarpeen mukaan.
Mistä svwww:ssä ei voi keskustella?
Webiin liittymättömistä asioista tai sellaisista asioista, joiden ydinasia ei
oikeastaan kosketa www:tä. Parempi on yleensä myös jättää pois keskustelu, joka
koskettaa vain yhtä sivustoa (palauteryhmä on erikseen - ks. kysymystä
sivuilmoituksista). Tervetullutta ei myöskään ole sellainen keskustelu, jossa
asia-argumentointi on jo unohdettu. Selain- ja käyttöjärjestelmäsodat kuuluvat
paremminkin ryhmään sfnet.atk.sodat. Tässä joitain tavallisimmista sellaisista
aiheista, joista ei kannattaisi yrittää virittää keskustelua svwww:ssä:
Palveluntarjoajat: Ryhmä sfnet.tietoliikenne.yhteydentarjoajat soveltuu
huomattavasti paremmin palveluntarjoajien haeskeluun ja vertailuun. Erityisen
totta tämä on domain-palveluiden etsimisen osalta: nehän eivät varsinaisesti
edes liity www:hen!
Ohjelmointi: Rajanveto www:hen liittyvän ohjelmoinnin ja muun ohjelmoinnin
välillä on välillä vaikeaa. Käytännössä palvelinpohjaisia skriptauskieliä
(ASP, PHP ym.) koskeva keskustelu on pääosin kotiutunut ryhmään
sfnet.atk.ohjelmointi. Toisaalta JavaScript-aiheinen keskustelu käydään
lähinnä svwww:ssä. Harkitse, onko ohjelmointikysymys enemmän webbiä vai jotain
muuta - mutta huomioi sekin, että osaajat lienevät jakautuneet pääosin edellä
esitetyn mukaan.
Omat kotisivut: Palautepyynnöt kuuluvat alaryhmään
sfnet.viestinta.www.palaute. Jos haluat kertoa kaikille uusista sivuistasi,
käytä siihen ryhmää sfnet.viestinta.www.uutuudet. Katso myös kysymystä uusista
sivuista ilmoittamisesta.
Sähköposti ja nyyssit: Näille aiheille on omat ryhmät: sfnet.viestinta.meili
ja sfnet.viestinta.nyyssit.
Miten ilmoitan omista sivuistani svwww:ssä?
Käytä alaryhmiä svwww.palaute ja svwww.uutuudet. Jos haluat erityisesti
palautetta, crosspostaa viesti sekä .palaute- että .uutuudet-ryhmiin ja aseta
jatkot pelkästään palauteryhmään. Uutuudet-ryhmää ei tulisi normaalisti käyttää
keskusteluun! Jos haluat pelkästään kysyä palautetta sivuistasi, muotoile
asiallinen viesti aiheesta palauteryhmään. Muista mainita sivuston URL-osoite.
On myös hyvätapaista kuvailla lyhyesti sivuston keskeinen sisältö. Samalla voit
tarkentaa, mistä erityisesti haluat palautetta ja mistä et.
Muista, että myös svwww:ssä ilmoittaessa on hyvä toimia netiketin mukaisesti.
Älä missään nimessä lähettele mainoksia sivuistasi jatkuvasti vain saadaksesi
lisää kävijöitä. Uutuusryhmä on tarkoitettu uudistuneista sivuista
tiedottamiseen, ei mainostamiseen.
Mistä löydän tietoa www:tä koskevista aiheista?
Lähes kaikki tieto on jo webissä. Käytä sitä hyväksesi tietoa etsiessäsi: ennen
kysymistä tarkista, löytyykö webistä vastausta vaivattomasti. Ainakin seuraavia
resursseja kannattaa käyttää:
www.htmlhelp.com
Jere Käpyahon linkkilista
Google
Termistö
Tässä luvussa vastataan kysymyksiin mallia "Mikä on...?" - eli kerrotaan
protokollista, standardeista ja muista sellaisista.
Mikä on HTML?
HTML (Hypertext Markup Language) on merkintäkieli, jolla kuvaillaan www-sivujen
sisällön rakenne. Kielen juuret ovat 1990-luvun alkupuolella, kun Tim
Berners-Lee kehitti WWW:n. Sen jälkeen HTML:n kehitystä on ohjannut World Wide
Web Consortium (W3C). HTML on edennyt versioon 4.01, johon sen kehitys on myös
lopetettu - nykyisin vastaavaa tekniikkaa kehitetään XHTML-nimellä.
Olennaista HTML:ssä on sivujen rakenteen kuvaaminen. HTML:llä ei voi määritellä
sivujen ulkoasua täsmällisesti, vaan sillä hahmotellaan rakenne (esim.
kappaleiden rajat, otsikot jne.). Sivujen ulkoasun määrittelyä varten W3C on
kehittänyt tyylisivut eli CSS:n. Käytännössä vuosien saatossa HTML:ään on
kertynyt kuitenkin paljon myös ulkoasun määrittelyyn liittyvää ainesta. Viime
vuosina on kuitenkin palattu puhdasoppisempaan sisällön ja ulkoasun erotteluun,
ja tämä kehitys näyttää jatkuvan.
Lisätietoa HTML:stä:
W3C:n suositus HTML-kielen versioksi 4.01
Web Design Groupin HTML 4.0 Reference
Mikä on SGML?
SGML (Standard Generalized Markup Language) on yleinen dokumenttien rakenteen
kuvailukieli. WWW:hen se liittyy lähinnä sitä kautta, että HTML-kieltä voidaan
sanoa SGML:n sovellukseksi. Aiheesta kertoo tarkemmin Jukka Korpelan kirjoittama
lyhyt johdatus. SGML:stä on myös yksinkertaistettu versio XML, jolla on myös
oma, alati kasvava merkityksensä www-maailmassa.
Mikä on XHTML?
XHTML (Extensible Hypertext Markup Language) on HTML-kielen seuraaja. Tällä
hetkellä XHTML:n uusin versio on 1.0, ja se seuraa aikajärjestyksessä HTML
4.01:tä. XHTML:n suurin ero HTML:ään nähden on se, että siinä missä HTML
pohjautuu SGML:ään, XHTML on rakennettu XML:n varaan. Tästä seuraa joitain
rakenteellisia eroja perinteisten HTML- ja XHTML-dokumenttien välille. Ks.
kysymystä XHTML:n ja HTML:n eroista.
Lisätietoja XHTML:stä löytyy mm. W3C:n XHTML-suosituksesta.
Mikä on XML?
XML (Extensible Markup Language) on SGML:n pohjalta kehitetty metakieli - siis
kieli, jolla voi tehdä kieliä. XML on suunniteltu erityisesti Internet-käyttöön
ja on huomattavasti SGML:ää yksinkertaisempi. Useat W3C:n kehittämät
tulevaisuuden www-tekniikat pohjautuvat juuri XML:n käyttöön.
Jonkinlainen suomenkielinen johdanto aiheeseen on Jouni Heikniemen kirjoittama
"Mikä on XML?". Lisätietoja XML:stä saa mm. W3C:n XML-sivuilta sekä Robin
Coverin The XML Cover Pages -sivustolta.
Mitä eroa on HTML:llä ja XHTML:llä?
Kielillä on paljon yhteistä: käytännössä koko sanasto on yhteinen, eli HTML:stä
tutut elementit ja niiden määreet löytyvät myös XHTML:stä. Erojakin kuitenkin
löytyy, sillä XHTML on XML-pohjainen kieli, joten sitä koskevat myös XML:n
rajoitukset. XHTML:ää kirjoitettaessa on huomioitava erityisesti seuraavat
asiat:
Merkkiherkkyys: XHTML:ssä isoilla ja pienillä kirjaimilla on eroa. Elementtien
nimet on kirjoitettava pienellä:
, ei , ja sama pätee myös
attribuuttien eli määreiden nimiin.
Pakolliset lainausmerkit: Kaikki määreiden arvot on aina, sisällöstä
riippumatta suljettava lainausmerkkeihin, siis esim. border="0".
Elementtien sulkeminen: Elementeillä on aina oltava lopputagi. Esimerkiksi
p-elementtiä ei saa jättää auki, vaan se täytyy sulkea vastaavalla
-tagilla. Käytössä on myös erityinen lyhennys tyhjille elementeille:
, joka usein yhteensopivuussyistä kirjoitetaan muodossa
.
XHTML on tarkoitettu säännöiltään huomattavasti HTML:ää tiukemmaksi. Siinä
vaiheessa kun varsinaiset XHTML-selaimet yleistyvät, todennäköisesti vaatimukset
syntaktisen oikeellisuuden suhteen kiristyvät: jos dokumentissa on yksikin
virhe, sitä ei välttämättä näytetä ollenkaan tai lopputulos voi ainakin olla
jotain hyvin outoa. XHTML:ään siirryttäessä on siis entistä tärkeämpää huolehtia
siitä, että sivut noudattavat asianmukaisia standardeja.
Mikä on CSS?
CSS tarkoittaa tyylisivuja, Cascading Style Sheets. CSS on tekniikka, jolla
määritellään ulkoasu HTML-kielellä kuvatulle rakenteelle. Siis kun esimerkiksi
HTML:ssä merkintä Yleistä selaimista
ilmoittaa kyseessä olevan otsikon,
CSS-määrittely H1 { font-size: 200% } määrittelee otsikon kirjasinkoon
kaksinkertaiseksi normaalitekstiin nähden. Yksinkertaistettuna siis HTML
kuvailee mitä sisältö on, ja CSS määrittelee, miten se näytetään.
CSS on W3C:n kehittämä tekniikka, joka näki ensimmäisen kerran päivänvalon
vuonna 1996, kun CSS:n taso 1 julkaistiin. CSS2 julkaistiin 1998, ja CSS3 on
parhaillaan kehitteillä. CSS2-toteutukset ovat vielä monilta osin varsin
ontuvia, joten tyypillisesti www-sivujen tekijät hyödyntävät kunnolla vain
CSS1:n ominaisuuksia.
Lisätietoja tekniikasta saat esimerkiksi seuraavista linkeistä:
W3C:n suositukset: CSS1, CSS2, CSS3 (projektisivu)
Pekka Järveläisen lyhyt johdanto aiheeseen
Css.nu-sivusto
Mikä on WML?
WML tarkoittaa web-maailmassa kahta asiaa. Se voi olla joko WAP-puhelinten
ohjaukseen käytetty merkintäkieli (Wireless Markup Language) tai sitten Website
Meta Language -niminen web-sivujen tekemiseen käytetty esikäsittelyohjelma, joka
mahdollistaa mm. sivupohjien käytön vaivattomasti laajoillakin sivustoilla.
WAP-WML:stä lisätietoja löytyy mm. Nokian WapForumista ja metakieli-WML:stä
puolestaan kielen omalta sivulta. Metakieltä opastaa myös Kai Puolamäen
artikkeli aiheesta.
Mitä ovat HTTP ja HTTPS?
Molemmat ovat siirtokäytäntöjä eli protokollia, joiden varaan web rakentuu. HTTP
tulee sanoista HyperText Transfer Protocol, ja HTTPS on sen kryptattu versio
("HTTP over Secure Sockets Layer").
HTTP on se yhteinen kieli, jota selaimet ja kaikki maailman www-palvelimet
puhuvat. Protokolla perustuu siihen, että asiakasohjelma (selain, hakurobotti
tms.) avaa TCP/IP-yhteyden palvelimelle, yleensä porttiin 80, ja lähettää
pyyntönsä. HTTP-pyynnöt ovat muotoa "lähetä minulle tiedosto /index.html" tai
"tässä on palvelimen käsiteltäväksi lomake, jonka kentässä nnn on tieto yyy
...". Palvelin vastaa lähettämällä sopivan vastauksen, tavallisimmin html-sivun
tai binääridataa kuten kuvia, ohjelmia tai ääntä. HTTP mahdollistaa myös muita
toimintoja, joista tavallisimpana esimerkkinä ehkä selaimen ohjaaminen uudelle
sivulle (ks. kysymystä aiheesta).
HTTP:stä on kaksi eri versiota, HTTP/1.0 vuodelta 1990 ja HTTP/1.1 vuodelta
1997. Jälkimmäinen on levinnyt jo kohtuullisen laajasti käyttöön, mutta monet
yksinkertaisemmat asiakasohjelmat ja hakurobotit käyttävät edelleen
1.0-versiota. Nykyaikaiset palvelimet tukevat pääosin molempia versioita ja
HTTPS:ää ongelmitta.
RFC 1945: HTTP/1.0
RFC 2616: HTTP/1.1
RFC 2817: HTTPS-materiaalia
Mikä on dokumenttityyppi (doctype)?
Doctype-määrittely sijoitetaan aina SGML- tai XML-dokumentin alkuun. Se kertoo,
minkätyyppisestä dokumentista on kysymys. HTML-dokumentin tapauksessa
doctype-määrittelyllä kerrotaan, mistä HTML:n versiosta puhutaan.
Doctype-määrittelyä tulisi käyttää silloin (ja vain silloin), kun sivut ovat
valideja eli kieliopin mukaisia - ne eivät siis aiheuta virheilmoituksia
validaattorilla tarkistettaessa.
Html-dokumenttiin doctype-määrittely asetetaan esimerkiksi seuraavasti:
Esimerkki
Tekstiä
Tällöin sivu käyttää muodollisestikin HTML:n 4.0 Transitional -versiota ja mm.
validaattorit tulkitsevat sisältöä mukaisesti. On syytä huomata, että vaikka
selaimet eivät toistaiseksi kovin aktiivisesti doctype-määreitä tulkitsekaan,
mm. uudet Mozillan ja IE:n versiot tulkitsevat jo koodia eri tavoin riippuen
siitä, onko dokumenttityyppi määritelty vai ei. Tämä suuntaus tuntuu olevan
lisääntymään päin, joten dokumenttityyppien merkitsemissä on syytä skarpata: jos
sivu on tehty toimimaan HTML-määrittelyn mukaisesti eikä validaattori ilmoita
ongelmista, kannatta doctype-määritystä käyttää.
Web-grafiikka
Tässä luvussa käsitellään grafiikan käyttöä webissä.
Miten värit ilmaistaan webissä?
Web-käytössä värit ilmaistaan sekoittamalla RGB-järjestelmän perusvärejä:
punaista (red), vihreää (green) ja sinistä (blue). Kunkin perusvärin määrä
jossain yksittäisessä värissä ilmaistaan numeroin 0-255, jossa 0 ilmaisee
olematonta ja 255 täyttä värikylläisyyttä. HTML:ssä värit ilmaistaan aina
heksadesimaalijärjestelmässä ja kaksinumeroisena, jolloin vastaavat ääriarvot
ovat 00 ja FF. Isoilla ja pienillä kirjaimilla ei ole eroa. Värit liitetään
peräkkäin RGB-järjestyksessä: ensin punainen, sitten vihreä ja kolmanneksi
sininen. Värikoodin eteen laitetaan vielä risuaita (#). Esimerkiksi ilmaisu
#ffffff tarkoittaisi sitä, että kaikkia värejä on maksimimäärä, jolloin
tuloksena on täysin valkoinen väri. Toisaalta #ff0000 tarkoittaa, että punaista
ja vihreää olisi maksimimäärä ja sinistä ei ollenkaan - tällöin tuloksena on
kirkasta keltaista.
CSS:ssä voidaan käyttää edellämainitun lisäksi myös lyhennettyä värimäärittelyä,
jossa kunkin perusvärin määrä ilmaistaan vain yhdellä heksadesimaalinumerolla,
ja koko värikoodi muodostetaan tuplaamalla esitetyt arvot. Esimerkiksi CSS-väri
#fa0 tarkoittaa väriä #ffaa00. Lisäksi HTML:ssä on määritelty 16 vakioväriä,
joihin voi viitata myös nimellä (esim. color="red").
Katso myös kysymystä ns. web-väripaletista.
Mikä on web-väripaletti?
Web-paletti (tunnetaan myös nimillä Netscape-paletti ja websafe-paletti) on 216
värin joukko, joka mitä todennäköisimmin näkyy oikein eri koneympäristöissä myös
vähemmillä värimäärillä. On periaatteessa suositeltavaa käyttää näitä värejä
varsinkin laajoissa väripinnoissa, joskin käytännössä asian merkitys on
vähentynyt näyttöjen värimäärän kasvun myötä.
Paletin värit muodostetaan siten, että heksamuotoisen värikoodin kunkin
elementin tulee olla jokin seuraavista: 00, 33, 66, 99, CC tai FF. Näin siis
esimerkiksi väri #CCFFFF on web-paletissa, mutta #CAFFFF tai #BBFFFF eivät.
Lisätietoja saat Pekka Ruipon väripalettia käsittelevältä sivulta.
Mitä eroa on gif:llä, jpg:llä ja png:llä?
Gif (Graphics Interchange Format) tallentaa maksimissaan 256 väriä, joten Gif
sopii parhaiten vähäväristen kaavioiden ja piirrosten esittämiseen. Toisin kuin
jpg, gif-pakkaus on häviötön, joten suorat viivat ja terävät raja-alueet eivät
kärsi pakkaamisesta. Tärkeä gif-kuvan etu muihin käsiteltyihin muotoihin nähden
on se, että gif-tiedostot voivat sisältää myös animaatiota sekä läpinäkyviä
pintoja. Eräs Gif:n ongelma on se, että pakkaamiseen käytetyn LZW-algoritmin
patenteista käydään oikeuskiistoja; ks. esim. Free Software Foundationin
näkemystä asiasta.
Jpeg (Joint Picture Experts Group) eli jpg-kuvamuoto on parhaimmillaan
valokuvien ja muiden fotorealististen kuvien tallentamisessa. Jpg pystyy
pienentämään isojakin kuvia hyvin pieneen tilaan, koska se osaa hävittää kuvasta
sellaista tietoa, jota silmä ei huomaa. Jpeg-kuvat ovat myös täysvärisiä.
Tehokkaan pakkausalgoritmin huono puoli on se, että pienet yksityiskohdat ja
terävät yksiväriset pinnat muuttuvat helposti suttuisiksi. Jpeg-kuvissa ei voi
olla läpinäkyviä kohtia.
Png (Portable Network Graphics) on uudempi kuvamuoto, joka pääosin korvaa Gif:n.
Png-pakkaus on myös häviötön, mutta kuvat voivat olla myös täysvärikuvia, toisin
kuin gif-muodossa. Png tuo mukanaan myös uusia ominaisuuksia kuten osittaisen
läpinäkyvyyden. Periaatteessa png:llä voidaan korvata kaikki gif-kuvat, mutta
selainten heikohko tuki png-kuville voi olla haitaksi. Käytännössä varsinkaan
vanhemmat selaimet eivät näytä välttämättä PNG-kuvia ollenkaan, ja uudemmissakin
on ongelmia läpinäkyvyyden oikean toteutuksen kanssa.
Lisätietoja kuvamuodoista:
Gif Animation FAQ
JPG FAQ
PNG:n kotisivu
Miten voin liittää sivuilleni vektorigrafiikkaa?
Vaikeaa on, sillä webissä ei vielä ole yhteisesti hyväksyttyä
vektorigrafiikkamuotoa. Ainakin uudemmissa Internet Explorereissa on mahdollista
käyttää VML-muotoa, mutta sitä ei tueta kovin laajalti. Varsinainen uusi tekijä
alalla on W3C:n kehittämä SVG (Scalable Vector Graphics) -kuvamuoto, mutta sille
on toistaiseksi varsin vähän tukea.
Eräs tapa vektorigrafiikan käyttöön on Macromedian Flash-laajennus, mutta se
vaatii toimiakseen selaimilta erillisen pluginin, eikä lisäksi toimi kovinkaan
tyydyttävästi ilman Flash-tukea. Ratkaisu on siis huono mm. harvinaisempien
selainten käyttäjien kannalta (tekstiselaimista nyt puhumattakaan). Lähinnä
Flashin käyttö tulee kyseeseen joissain intro-tyyppisissä esityksissä, jotka
eivät sisällä mitään tärkeää informaatiota.
Sivujen luominen
Tässä luvussa vastataan sellaisiin kysymyksiin, jotka liittyvät sivujen
luomiseen ja julkaisuun liittyviin ongelmiin. Merkkauskieliä koskevia teknisiä
kysymyksiä käsitellään VUKK:n loppuosassa.
Mitä HTML-editoria kannattaa käyttää?
Tämä on makuasia, josta voi kiistellä rajattomasti. Editorit jakautuvat raa'asti
ottaen kahteen osaan: koodieditorit ja WYSIWYG-editorit. Ensinmainitut vastaavat
toiminnallisuudeltaan lähinnä perinteisiä tekstureita (Notepad/Muistio ym.),
mutta kehittyneemmät ohjelmat hallitsevat mm. syntaksin värittämisen ja koodin
automaattisen tarkastelun. Lisäksi mukana on usein ohjeita ja velhoja
monimutkaisempien rakenteiden tekemiseen. WYSIWYG-editoreissa toisaalta
kokonaisuus suunnitellaan pitkälti ulkoasuvetoisesti, läiskimällä ruudulle
elementtejä, joiden mukaan koodi sitten generoidaan.
Selvää on, että teksturityyppisen editorin käyttäminen vaatii enemmän HTML:n
osaamista, ja toisaalta tuottaa tyypillisesti standardinmukaisempaa ja siivompaa
HTML-koodia. Toisaalta teksturin käyttö muuttuu isojen dokumenttien kohdalla
työlääksi, varsinkin jos sivu sisältää suuria määriä sisällön ulkopuolista
aineistoa (kuten JavaScriptiä). Jos HTML pysyy käsissä, todennäköisesti
selkeämpi (ja ylläpidettävämpi!) lopputulos syntyy kirjoittamalla koodia käsin.
WYSIWYG-editorilla sivuston rungon kasaa nopeasti, mutta koodin hiominen
loppuvaiheessa voi osoittautua melko työlääksi.
Hyviä teksturityyppisiä HTML-editoreita Windows-puolella ovat ainakin HTML-Kit,
1st Page 2000 ja Allaire HomeSite. Näistä viimeksimainittu on maksullinen.
Tavallisimmat Windows-maailman WYSIWYG-editorit ovat Frontpage (ja sen
kevytversio Frontpage Express), Macromedia Fireworks, Macromedia Dreamweaver ja
Adobe Golive. Frontpage Expressiä lukuunottamatta kaikki mainitut editorit ovat
maksullisia.
Miten voin houkutella ihmisiä sivuilleni?
Onko sinulla kiinnostavaa sisältöä? Jos on, kävijöitä alkaa tulla itsestäänkin
ennen pitkää. Jos sivusi käsittelevät vain sinua itseäsi, voi olla että
kävijävirtaa ei koskaan tulekaan - ellet sitten ole hyvin kiinnostava persoona.
Älä liioittele tiedottamisessa: puskaradio kyllä mainostaa hyviä sivuja, kunhan
annat ajan kulua. Lisäksi voit harkita seuraavia keinoja:
Hakukoneet: Lähetä sivujesi osoite hakukoneisiin.
Tiedotuskanavat: Mm. joihinkin uutisryhmiin saa lähettää ilmoituksia uusista
sivuista; esimerkkinä sfnet.viestinta.www.uutuudet. Muista, että harkitsematon
ilmoittelu tulkitaan helposti spammaamiseksi - toimi maltillisesti!
Osoitteen pitäminen esillä: Jos kirjoitat uutisryhmiin, pidä osoitetta
sigussasi. Jos kirjoitat jonkun vieraskirjaan jossa kysytään kotisivujen
osoitetta, mainitse omasi. Kyllä niitä kävijöitä kertyy - ja sitä
todennäköisemmin, mitä enemmän mielenkiintoista materiaalia sivuillasi on.
Miten voin estää sivuni lähdekoodin näkymisen?
Et mitenkään. Jos estäisit, selaimetkaan eivät voisi näyttää sivua.
Javascriptillä ym. on mahdollista vaikeuttaa sivun lähdekoodin katsomista, mutta
estäminen on mahdotonta. Ns. obfuskaattoriohjelmat voivat sotkea koodin
vaikealukuiseksi, mutta yhtä lailla on olemassa koodia siistiviä ohjelmia -
varsinaista ratkaisua ei siis ole.
Ulkopuoliset resurssit
Tässä luvussa käsitellään web-sivujen tekemiseen tarvittavia ulkoisia
palveluita: kotisivutilaa, kävijälaskureita, vieraskirjoja ja sen sellaisia.
Mistä saan ilmaista kotisivutilaa?
Kohtuullisen kattava lista löytyy Freewebspace-palvelusta.
Ilmaispalveluntarjoajia on vaikka kuinka paljon sekä Suomessa että ulkomailla.
Kannattaa vertailla vaihtoehtoja ja etsiä itselleen sopiva paikka.
Ilmaispalvelut tyypillisesti liittävät sivuillesi mainoksia tai vastaavaa
kiusaa, joten kannattaa myös harkita, olisiko pieni hinta kuitenkin sopivampi
ratkaisu. Lisäksi palveluntarjoajissa on merkittäviä eroja yhteysnopeuksien
suhteen - kannattaa tavoitella mahdollisimman nopeiden yhteyksien päässä olevaa
palvelua.
Mistä saan vieraskirjan?
Selvitäpä, mitä operaattorisi tarjoaa. Tavalliset kuluttaja-ISP:t Suomessa eivät
tosin yleensä tarjoa mitään. Ilmaiseksi vieraskirjan saa ainakin Freebokista, ja
palveluita löytyy lisää esim. Googlen linkkihakemiston Guestbooks-osiosta. Jos
sivusi ovat sellaisella palvelimella, jossa voit itse ajaa PHP-skriptejä, voit
myös itse asentaa jonkin PHP-pohjaisen vieraskirjan. Niitä on tarjolla vaikka
miten paljon; pitkä luettelo löytyy esim. Resourceindexistä.
Mistä saan sivuilleni kävijälaskurin?
Laskureita on tarjolla runsaasti. Monilla ISP:illä on tarjolla oma laskurinsa;
sellaisesta löytää tyypillisesti ohjeita ISP:n asiakaspalvelusivuilta. ISP:iden
laskurit ovat yleensä toiminnoiltaan melko yksinkertaisia, mutta laajempia
tilastointipalveluitakin on saatavilla ilmaiseksi eri puolilla Internetiä.
Laskurit perustuvat tyypillisesti siihen, että sivulle sijoitetaan pieni kuva,
joka ladataan mittauspalvelusta. Tämä palvelu pitää kirjaa kuvan latauskerroista
ja niiden perusteella arvioi sivuston käyttöastetta. Vaihtoehtoisesti analyysi
voidaan tehdä suoraan tutkimalla ISP:n www-palvelimen lokia, mutta tällaista
palvelua ei tavallisilla Internet-palveluntarjoajilla yleensä ole. Molemmissa
menetelmissä on ongelmansa; erityisesti laskurien luotettavuus on kyseenalainen.
Ilmaislaskureita voi koittaa etsiskellä oman ISP:n sivujen lisäksi mm. Yahoon
Access Counters -listasta ja Adbility.comin vastaavasta luettelosta.
Entäs laskurien luotettavuus?
Lyhyesti: Mikään laskuri ei ole täysin luotettava. Tietyillä menetelmillä
voidaan päästä kohtuullisen lähelle totuutta, mutta parhaat näiden menetelmien
toteutukset ovat tällä hetkellä kaupallisia (ja kalliita) tuotteita.
Ilmaislaskurien kuvaan tai web-lokin analysointiin perustuva laskenta kärsii
monista epäluotettavuustekijöistä, joista seuraavat ovat merkityksellisimmät:
Kuvia lataamattomat selaimet jäävät laskematta.
Jos kuva tai sivu ladataan välimuistista, siitä ei tule merkintää mihinkään
järjestelmään.
Varsinkaan raskaammilla sivuilla laskurikuvan latautuminen ei välttämättä ole
yhteydessä sivulataukseen: käyttäjä voi ehtiä seuraavalle sivulle jo ennen
kuin kuva on ladattu.
Laskureihin liittyviä ongelmia käsittelee laajemmin (englanniksi) Jeffrey
Goldbergin artikkeli.
Miten teen sivulleni palautelomakkeen?
Lomakkeen tekeminen sinänsä on yksinkertaista, mutta pelkällä lomakkeella ei
pitkälle pötkitä. Useilla ISPeillä onneksi on valmiiksi asennettuna jokin
CGI-ohjelma, joka osaa lähettää lomakkeen sisällön sähköpostilla haluttuun
osoitteeseen - tämä onkin yleisin tapa käsitellä lomakkeelta tuleva palaute.
Tutki oman palveluntarjoajasi valikoimia ja selvitä, löytyykö sopivaa lomaketta
valmiina.
Jos ei löydy, eräs (huonohko) vaihtoehto on laatia palautelomake, jonka
action-attribuutin arvo on ns. mailto-osoite (esim. ). Ongelmaksi muodostuu kuitenkin
se, ettei tällaisen lomakkeen oikeaa toimintatapaa ole määritelty mitenkään - se
siis voi toimia joissain selaimissa ja olla toimimatta joissain toisissa.
CGI:lle lähetettävä lomake on ehdottomasti parempi, mutta valitettavasti myös
vähän vaativampi ratkaisu.
Miten saan sivuni näkymään hakukoneissa?
Tärkein lähtökohta on se, että sivusi ovat teknisesti kunnossa. Niiden on syytä
olla kelvollista HTML:ää ja hyvin luettavissa myös muuten kuin Flashia tukevalla
IE:llä. Muista, että hakukoneen näkemys sivuistasi vastaa suunnilleen
tekstiselainta: esimerkiksi kuvien alt-teksteihin on syytä panostaa! Jonkin
verran voit parantaa hakukoneille antamaasi vaikutelmaa myös käyttämällä
tiettyjä meta-elementtejä, mutta niiden antama apu on vain rajallinen. Huomaa,
että meta-elementtien väärinkäyttö todennäköisesti aiheuttaa enemmän harmia kuin
hyötyä.
Ennen muuta hakukoneiden listoille päätyminen kysyy aikaa. Jossain vaiheessa
sivut päätyvät sinne melkeinpä väkisin. Prosessin nopeuttaminen usein vaatii
luottokortin höyläystä, mutta muutaman kuukauden odottamalla pääsee ilmaiseksi.
Voit nopeuttaa prosessia lähettämällä sivujesi urlin hakukoneille; useimmilla
hakukoneilla on lomake tätä tarkoitusta varten. Monet hakukoneet indeksoivat
sivusi myös sitä nopeammin, mitä enemmän niille on linkkejä ulkopuolisilta
sivuilta.
Miten estän sivujeni näkymisen hakukoneessa?
Jos jostain syystä haluat estää sivustosi (tai sen osan) näkymisen hakukoneissa,
voit käyttää paria erilaista menetelmää. Toinen vaihtoehto on niin sanottu
robots exclusion standard, joka on tekstitiedostoon pohjautuva hakurobottien
ohjailumekanismi. Toinen vaihtoehto puolestaan on HTML-sivuun upotettavien
meta-elementtien käyttö. Näistä molemmista kertoo tarkemmin Jouni Heikniemen
kirjoitus "Kuinka estää hakukonetta löytämästä minua?".
Selaimet
Tässä luvussa käsitellään erityisesti selaimiin liittyviä kysymyksiä.
Mitä selaimia on käytössä?
Vaikka mitä. Marginaaliosuuksia riittää kymmenille eri selaimille, mutta
käytännössä lähes kaikki surffaavat IE:llä, Netscapella ja Operalla.
Kirjoitushetkellä (tammikuu 2002) IE:n versioita 4-6 käyttää yli 80%
surffaajista, Netscapeja reilut 10% ja loput pilkkoutuvat Operalle ja muille
selaimille. Tiedoista on kuitenkin tärkeää huomata se, että a) selainten
laskemiseen liittyvät pääosin samat epävarmuudet kuin muuhunkin kävijälaskentaan
(ks. erillinen kysymys), b) kaikkia selaimia ei voida tunnistaa luotettavasti ja
c) selainten prosenttiosuudet vaihtelevat huomattavasti kävijäkunnan mukaan
(esim. Linux-aiheisilla sivuilla IE:n osuus on huomattavasti pienempi).
Selaintilastoja voi katsella esimerkiksi echoecho.comin etusivulta. Tilastoihin
on kuitenkin suhtauduttava äärimmäisen varovaisesti, mm. siksi, että tilastot
harvemmin kattavat muuta kuin yhden tai muutaman sivuston, ja esimerkiksi
webmaster-henkiselle sivulle kertyy huomattavasti enemmän uusien selainten
käyttäjiä kuin Internetin peruskäyttäjiin keskittyvälle sivulle.
Miten eri selaimet tukevat CSS:ää?
Tuen tasossa on suuria eroja. Opera ja Mozilla tukevat sekä CSS1- että
CSS2-määrityksiä varsin hyvin. Myös sekä Netscapen että IE:n uudet versiot ovat
tuen osalta varsin hyvällä tasolla, mutta vanhemmissa pulmia riittää;
erityisesti Netscapen nelosversiot ovat varsinkin joidenkin CSS:n ominaisuuksien
osalta ongelmallisia.
Selainten CSS-tuesta tarkemmin:
Css.nu:n kasaama bugilista.
Webreview.comin taulukko selainten tukemista teknologioista.
Webreview.comin taulukko tuetuista CSS-ominaisuuksista
Webreview.comin taulukko parhaiten CSS:ää tukevista selaimista
Miksi selain tulostaa tiedoston sotkuna selausikkunaan?
Ongelma johtuu yleensä siitä, että tiedoston tarjoileva web-palvelin on
konfiguroitu väärin. Kun selain pyytää palvelinta lähettämään jonkin tiedoston,
palvelin palauttaa itse datan lisäksi myös Mime-tyypin, joka kertoo millainen
tiedosto on tulossa. Jos palvelin ei tunnista jotain tiedostotyyppiä, se usein
lähettää tyyppitiedon text/plain, joka tavallisesti näytetään suoraan ruudulla.
Binääridataa sisältävän tiedoston kohdalla tämä johtaa sekalaisten merkkien
tulostumiseen.
Usein tällaisessa tapauksessa käy niin, että sivu toimii IE:llä oikein, kun taas
Netscape ja muut selaimet näyttävät sotkua. Tämä johtuu siitä, että IE usein
ohittaa palvelimen lähettämän mime-tyypin ja käsittelee tiedoston sen päätteen
tai sisällön mukaan. Netscape toimii siis standardien mukaan oikein, mutta
lopputulos on usein yksittäistapauksissa IE:n menetelmää huonompi. Joka
tapauksessa oikea ratkaisu on konfiguroida Mime-tyypit kuntoon.
Sivujen tarkastaminen ja validointi
Tässä luvussa käsitellään ns. validaattoriohjelmia ja niiden sukuisia välineitä.
Mikä on HTML-validaattori?
Validaattori on ohjelma, jolla voi tarkistaa HTML-muotoisen dokumentin
muodollisen oikeellisuuden eräissä suhteissa. Validaattori esimerkiksi havaitsee
monia kirjoitus- ja rakennevirheitä HTML-merkkauksessa. Teknisesti sanottuna
validaattori tarkistaa, vastaako dokumentti ilmoitettua dokumenttityypin
kuvausta (doctype-määrittelyä). Ilmaisia validaattoripalveluita ovat mm. W3C:n
validaattori, Web Design Groupin validaattori sekä Page Valet. Varsin näppärä on
myös suomenkielinen LeHTori.
Laajemmin samaa asiaa käsittelee Jori Mäntysalon kirjoitus HTML-validaattori -
mikä se on.
Kannattaako validaattoria käyttää?
Kannattaa. Sivujen validointi on syytä hoitaa viimeistään siinä vaiheessa, kun
sivu olisi muuten valmis ja sen julkaisua harkitaan, mutta mielummin jo
aikaisemmin. Validoimalla löydät monia yksinkertaisia kirjoitus- ja
ajatusvirheitä, jotka voivat vaikeuttaa sivujen testausta selaimilla. On
kuitenkin syytä huomata, että validoinnin lopputulos ei vielä takaa mitään,
sillä validaattorit vertailevat sivua HTML- tai XHTML-kielen muodolliseen
määrittelyyn, mutta toistaiseksi juuri mikään selain ei toimi täysin näiden
määrittelyjen mukaan. Siispä validaattorista siististi läpi solahtava sivu
saattaa olla lähes täysin toimimaton, kun taas moni virheitä suoltava sivu voi
käytännössä toimia. Käytännössä kuitenkin validaattorin hyväksymällä sivulla on
parhaat mahdollisuudet toimia kaikissa selaimissa ainakin jotenkin.
Miksi validaattori herjaa sisäkkäisistä listoista?
Todennäköisesti siksi, että ne on tehty väärin :-) Oikea tapa tehdä sisäkkäinen
lista on sulkea koko sisempi lista ulomman listan li-elementin sisään tähän
tapaan:
- Tämä on ensimmäisen listan osa
-
- Tämä on sisemmässä listassa
Miksi validaattori herjaa &-merkeistä joissain URLeissa?
Useissa tilanteissa &-merkki aloittaa HTML:n sääntöjen mukaan ns.
entiteettiviittauksen. Esimerkiksi © tarkoittaa copyright-merkkiä ja &foo
taas on määrittelemätön ja siten virheellinen entiteettiviittaus. Validaattori
tulkitsee, että URL:ssä esiintyvät &-merkit aloittavat viittauksen. Ratkaisu on
korvata &-merkit samaa merkkiä tarkoittavalla entiteetillä &, esim. näin: .
Web-ohjelmointi
Tämä luku kertoo ohjelmoinnista www-ympäristössä sekä palvelimen että
asiakaspään osalta. On hyvä huomata, että apua erityisesti vaativammissa
palvelinohjelmointia koskevissa kysymyksissä löytyy myös uutisryhmästä
sfnet.atk.ohjelmointi.
Mitä on SSI (SHTML)?
SSI (Server Side Includes, josta joskus puhutaan harhaanjohtavasti myös
SHTML:nä) on nimitys tekniikalle, jossa WWW-palvelin esikäsittelee sivun ennen
sen palauttamista selaimelle. Tavallisin SSI:n käyttö on osiin jaetun sivun
palasten yhdistäminen. Esimerkiksi kaikille sivuille yhteinen navigaatiotaulukko
voidaan sijoittaa omaan tiedostoonsa, jolloin muilla sivuilla voidaan vain
viitata tähän yhteen tiedostoon. Tavallisesti tämä toteutetaan lisäämällä
sivulle rivi merkintä tyyliin , jolloin
include-merkinnän kohdalle pulautetaan mainitun tiedoston sisältö.
SSI:llä voidaan usein tehdä myös muita toimintoja kuten kirjoittaa sivulle
tiedosotn viimeinen muutospäivämäärä. Näistä toiminnoista löytyy yleensä
lisäapua palveluntarjoajasi ohjetiedostoista. Huomaa, että joissain
ympäristöissä SSI-käsittely tehdään vain .shtml-päätteisille tiedostoille.
Lisätietoja SSI:stä löytyy esimerkiksi seuraavasta osoitteesta:
http://www.cs.helsinki.fi/u/hahonen/uusmedia/sisalto/cgi_perl_ssi/ssi.html
Mitä on CGI?
CGI on lyhenne sanoista Common Gateway Interface. Se tarkoittaa rajapintaa,
jonka kautta ohjelmat voivat tuottaa www-sivuja yhteistyössä palvelimen kanssa.
Käytännössä tämä yhteistyö ilmenee yleensä lomakkeiden käsittelynä:
HTML-lomakkeen sisältö lähetetään palvelimelle, joka siirtää sen edelleen
CGI-rajapinnan mukaisesti tietyn ohjelman käsiteltäväksi. Tämä ohjelma tuottaa
vastaussivun (esimerkiksi uuden lomakkeen tai kiitossivun) ja palauttaa sen
CGI:n määrittelemällä tavalla palvelimelle, joka toimittaa vastauksen edelleen
asiakkaalle (selaimelle).
On tärkeää huomata, että CGI ei ole ohjelmointikieli. Useimmat CGI-ohjelmat
tehdään joko C:llä tai Perlillä.
Huomaa, että CGI-tekniikka ei tyypillisesti ole käytössä kuluttajille myytävissä
Internet-palveluissa. Palveluntarjoajilla voi kuitenkin olla joitain valmiita
CGI-ohjelmia; näistä yleensä löydät käyttöohjeet palveluntarjoajan sivuilta.
Mitä ovat ASP ja PHP?
Molemmat ovat web-palvelimella ajettavia skriptausympäristöjä, joilla voidaan
toteuttaa sivuille erilaisia toimintoja. Samalla niillä voidaan korvata useissa
tapauksissa myös CGI-ohjelmat (ks. kysymystä "Mitä on CGI?"). PHP-koodia
suoritetaan Apache-alustalla ja ASP:tä puolestaan Microsoftin Internet
Information Server -palvelimella. PHP on C:n ja Perlin risteytys, ja sillä
tehdyt ohjelmat muistuttavat hyvin läheisesti mainittuja kieliä. ASP ei ole
ohjelmointikieli, vaan alusta eri kielten tulkkaukseen; tavallisimmin ASP-koodi
kirjoitetaan Visual Basicia muistuttavalla VBScriptillä, mutta myös mm.
JavaScriptin kaltainen JScript on käytettävissä.
Kumpaakaan skriptausalustaa ei yleensä ole tarjolla kuluttajille myytävissä
tavallisissa Internet-yhteyspaketeissa. Kirjoitushetkellä ainoa tietämäni
poikkeus on MBinternet, jossa PHP:n käyttäminen onnistuu. ASP:tä käytetään
lähinnä yrityssivustojen tekemisessä, PHP on mukana useissa erikseen
ostettavissa hosting-paketeissa. Jos nämä palvelut ovat käytössä, siitä yleensä
on palveluntarjoajan antamat tarkemmat ohjeet.
ASP:stä löytyy lisätietoja paitsi Microsoftin virallisilta sivuilta, myös mm.
ASPToday- ja 4GuysFromRolla.com-sivustoilta. PHP:stä voi lukea lisää esim. PHP:n
kotisivuilta ja PHPWorld.com-saitilta.
Mitä on Javascript?
Javascript on tulkattava ohjelmointikieli, jota käytetään www-sivuilla
toiminnallisuuden ja käyttöliittymän toteuttamiseen. Kieli muistuttaa C:tä ja
Javaa, mutta JavaScript on silti täysin eri kieli kuin Java. JavaScriptistä on
tällä hetkellä olemassa versiot 1.0, 1.1, 1.2 ja 1.3, joista 1.1 ja 1.2 ovat
lähinnä tällä hetkellä käytössä olevia versioita. Microsoft Internet Explorerin
ymmärtämä JavaScript-murre on nimeltään JScript, ja JavaScriptin pohjalta on
myös laadittu uusi standardoitu versio ECMAScript. Monista nimistä huolimatta
kielet ovat valtaosiltaan keskenään hyvin samanlaisia.
Javascriptin voima piilee mahdollisuuksissa muokata sivua W3C:n määrittelemän
DOM-oliomallin kautta. Lisäksi sillä on helppo tehdä yksinkertaisia ohjelmia ja
kokeilla niitä. Kielen ongelmana ovat lähinnä selainten väliset
yhteensopivuusongelmat ja sen epäluotettavuus - yhä useammat kytkevät
JavaScriptin pois turvallisuusongelmia välttääkseen, joten sivuja ei voi pidä
vain JavaScriptin varassa toimiviksi. Kaikissa käytössä olevissa selaimissa
JavaScript-tukea ei myöskään ole ollenkaan.
Lisätietoa JavaScriptistä:
Netscape DevEdge: Javascript-dokumentaatio
JavaScript FAQ
Jukka Korpela: JavaScript and HTML: possibilities and caveats
Simo Särkkä: JavaScript-opas
Mitä on Java?
Java on Sun Microsystemsin alaisen JavaSoftin kehittämä C++:aa muistuttava
oliopohjainen ohjelmointikieli, jonka erityispiirteenä on
laitteistoriippumattomuus. Javalla tehdyt ohjelmat käännetään tavukoodiksi,
jonka Java-virtuaalikone osaa suorittaa. Virtuaalikoneita on saatavilla lähes
kaikkiin laitteistoympäristöihin, joten kerran tehty Java-ohjelma voidaan
suorittaa lähes millä vain laitteella.
Internetin kannalta Java on merkityksellinen erityisesti siten, että myös
suosituimmissa selaimissa on mukana Java-virtuaalikone, jolloin Java-ohjelmia
voidaan upottaa www-sivuille sovelmiksi eli appleteiksi. Näin Javan avulla
www-sivuille voidaan tuoda sellaista toiminnallisuutta, joka ei pelkällä
HTML:llä onnistu. Tämän lisäksi Javalla on käyttöä myös palvelinpäässä, jossa
servletit korvaavat hiljalleen mm. CGI-ohjelmia.
Javasta on useita versioita. Vuonna 1997 esitelty Java 1.1 on edelleenkin
käytännön standardi silloin, kun halutaan tehdä sovelmia jotka toimivat
vaivattomasti ilman lisäpalikoita. Vuonna 1999 esitelty Java 1.2 (joka tunnetaan
myös nimellä Java 2) sisältää monia uusia ominaisuuksia, mutta sitä ei
toistaiseksi tueta kovin laajalti selaimissa.
Lisätietoa Javasta:
JavaSoftin sivut
Java Programmers' FAQ
Web-palvelimet
Tämä luku kertoo www-palvelimista ja niiden konfiguroinnista.
Mitä web-palvelimet ovat?
Web-palvelimella tarkoitetaan sellaista laitetta, ohjelmistoa tai niiden
yhdistelmää, joka tarjoaa www-sivuja asiakkaiden haettavaksi. Yleensä
tarkoitetaan samalla myös julkisessa verkossa toimivaa palvelinta, siis
sellaista, joka on osa "World Wide Webiä". Web-palvelimena voi toimia lähes mikä
tahansa laite, jolle sopiva ohjelmisto vain löytyy. Sellaisia löytyykin lähes
kaikille mahdollisille käyttöjärjestelmille.
Unix-alustalla tavanomaisin palvelinohjelmisto on selkeästi Apache, joka tosin
on saatavilla myös Windows-maailmaan. Windowsissa valtikkaa pitelee kuitenkin
Microsoftin IIS (Internet Information Server). Molemmat palvelimet ovat ilmaisia
ja kykenevät suorituskykynsä puolesta mihin vain. Normaalikäyttäjä joutuu näistä
helpommin tekemisiin Apachen kanssa, sillä Internet-palveluntarjoajat käyttävät
sitä kotisivupalveluiden tarjoamiseen, kun taas IIS on käytössä lähinnä
yritysten Windows NT -palvelimissa.
Www-palvelinohjelmistoja löytyy paljon muitakin. Eräs tavallisimmista on IIS:n
kevytversio PWS (Personal Web Server), joka pyörii myös
desktop-käyttöjärjestelmissä (Windows 95/98/Me). Lisää vaihtoehtoja löytyy
Internetin tiedostopalveluista (ks. esim. Tucowsin valikoima) runsaastikin,
mutta niille on vain vähän tarvetta: suurimmat ja kauneimmatkin ovat
ilmaisuutensa vuoksi kaikkien ulottuvilla.
Miten teen salasanasuojauksen sivuilleni?
Oikea tapa on käyttää ns. HTTP-autentikointiin pohjautuvaa menetelmää.
Toteutustapa riippuu käytössä olevasta palvelinohjelmistosta. Useimmiten suojaus
halutaan tehdä Apache-palvelimeen, jota käytännössä kaikki palveluntarjoajat
käyttävät. Siinä ratkaisu usein onnistuu käyttämällä ns. htaccess-tiedostoa ja
lisäämällä sinne sopivat rivit. Tähän on yleensä tarjolla ohjeet suoraan
palveluntarjoajaltasi, jos suojauksen rakentaminen on ylipäätään mahdollista.
Yleisempiä ohjeita löytyy esimerkiksi seuraavista lähteistä:
Apache FAQ: How do I set up Apache to require a username and password to
access certain documents?
MBinternet-palvelun ohjeet salasanasuojauksen tekemisestä (sovellettavissa
muihinkin palveluntarjoajiin)
Jos et jostain syystä voi käyttää "oikeaa tapaa", toiseksi paras vaihtoehto on
suojata ohjelma salasanaa kysyvällä HTML-lomakkeella, jonka tulos käsitellään
CGI-ohjelmalla. Tällöin salasanat voidaan jättää palvelimelle ja antaa niiden
tarkistaminen CGI:n huoleksi. Huonoin vaihtoehto ovat Javascript-pohjaiset
"suojaukset", jotka eivät oikeasti suojaa mitään ja aiheuttavat myös
käytettävyysongelmia.
Miten saan selaimen ohjautumaan automaattisesti uudelle sivulle?
Palvelimen tulee lähettää selaimelle Location-otsake, jolloin selain tietää
hakea sivun uudesta osoitteesta. Apache-palvelimella uudelleenohjauksen toteutus
onnistuu helpoiten .htaccess-tiedostoa muokkaamalla. Esimerkiksi rivi
RedirectMatch permanent .* http://www.heikniemi.net/muutto.html
... saa aikaan sen, että kaikki sivupyynnöt ohjautuvat yhteen tiedostoon. Tämä
auttaa, jos vaikkapa suljet sivusi ja haluat tiedottaa siitä hallitusti yhdellä
sivulla. Toisaalta jos sivusi ovat muuttaneet palvelimelta toiselle, on yleensä
tarkoituksenmukaisempaa vain vaihtaa osoitteen alkuosaa. Silloin auttavat
seuraavanlaiset rivit:
Redirect permanent /~jth http://www.heikniemi.net
Redirect permanent /%7ejth http://www.heikniemi.net
Redirect permanent /%7Ejth http://www.heikniemi.net
Tällöin esim. tiedostoa /~jth/opas.html kaipaava selain päätyisi tiedostoon
http://www.heikniemi.net/opas.html. Kolme riviä tarvitaan siksi, että tilden (~)
voi kirjoittaa kolmella eri tavalla. Tarkemmin redirectien käyttöä opastaa
Apachen FAQ.
Tarvittaessa uudelleenohjauksen voi tehdä myös CGI-ohjelmasta kirjoittamalla
location-otsakkeen käsin. Esimerkiksi seuraava Perl-skripti ohjaa käyttäjän
Googlen etusivulle:
#!/usr/local/bin/perl
print "Status: 301 Moved\r\n" .
"Location: http://www.google.com/\r\n" .
"\r\n";
Huomaa, että edelliset esimerkit lähettävät käyttäjälle HTTP-vastekoodin 301,
joka tarkoittaa sivujen pysyvää siirtymistä. Jos osoitteenmuutos on tilapäistä
lajia, voit käyttää HTTP-palautuskoodia 302. Tämä onnistuu jättämällä
Redirect-määritteistä permanent-sana pois.
Miten kerron palvelimelle tiedostojen Mime-tyypin?
Huom! Tämä vastaus koskee vain Apache-palvelinta. Uuden tiedostotyypin
määritteleminen palvelimenlaajuisesti vaatii ylläpito-oikeudet. Mikäli
jonkintyyppiset tiedostot eivät siis toimi kunnolla (suttua selainikkunassa ym.)
palveluntarjoajallasi, voit ilmoittaa heille asiasta. Mikäli käyttämässäsi
palvelussa on mahdollista soveltaa .htaccess-tiedostoja, voit korjata asian
omien hakemistojesi osalta myös itse.
Lisää .htaccess-tiedostoon rivi AddType audio/mpeg .mpkolmonen, jolloin
".mpkolmonen"-päätteiset tiedostot lähetetään audio/mpeg-tyyppisinä. Jos et
tiedä tiedoston oikeaa mediatyyppiä, sitä voi etsiä IANA:n
mediatyyppiluettelosta.
Web-tekniikka
Tähän lukuun on kerätty kaikki HTML-, CSS- ym. tekniikoihin liittyvät sekalaiset
kysymykset.
Miten voin määrittää mailto-linkillä sähköpostin otsikon?
Et kovin luotettavasti mitenkään. Joissain selaimissa voi toimia ratkaisu
tyyliin , mutta joissain se
taas estää koko viestin lähettämisen. Järkevämpää onkin hoitaa otsikkoasia
muuten kuntoon, esimerkiksi varaamalla yksi sähköpostiosoite pelkkää palautetta
varten. Tällöin otsikko ei olisi niin olennainen. Vaihtoehtoisesti homman voi
hoitaa jonkin järkevän palautelomakkeen kautta.
Miten teen kehykset ilman reunuksia?
HTML 4.0 Frameset -määrityksen mukainen tapa poistaa kehykset on frame-elementin
muutaman attribuutin määritteleminen nollaksi tähän tapaan: . Monet selaimet kuitenkin näyttävät edelleen reunuksen tällä
tavoin tehdyille kehyksille. Homma ratkea lisäämällä attribuutti border=0, mutta
tämä estää sivun validoitumisen. Olennaisin haitta tällä hetkellä lienee
kuitenkin vain muodollinen oikeellisuuden puute, sillä selaimet ohittavat
ylimääräiset määreet kiltisti.
Miten tehdään vaihtuva kuva JavaScriptillä?
Olennaista on liittää kuvan vaihtuminen johonkin tapahtumaan (event). Yleensä
haluttu tapahtuma on hiiren liikkuminen kuvan päälle tai pois siitä. Nämä
tapahtumat tunnetaan nimillä onMouseOver ja onMouseOut. Ohessa hyvin
yksinkertainen esimerkki:
Teksti
JavaScriptin toimintaa selvittää perusteellisemmin Jukka Korpelan
web-julkaisemisen oppaan jakso 3.2.
Miten tehdään linkki ilman alleviivausta?
CSS-ilmaisulla text-decoration: none. Yksinkertaisimmillaan siis vaikkapa näin:
Kohteeseen. Huomaa
kuitenkin, että alleviivaus on käyttöliittymällisesti tärkeä ominaisuus, sillä
se auttaa käyttäjiä tunnistamaan linkit linkeiksi. Alleviivausta ei siis kannata
poistaa huvin vuoksi!
Milloin määreen arvon ympärille tarvitaan lainausmerkit?
Silloin, kun attribuutin arvossa on vain aakkosia A-Z, numeroita 0-9, pisteitä
tai väliviivoja. Toisaalta ei ole mitään syytä olla käyttämättä niitä muutenkin
- erityisesti, koska XHTML:ssä ne vaaditaan kaikkien arvojen ympärille. Tällä
hetkellä siis HTML-lähdekoodissa esimerkiksi ilmaisu border=0 on ok, mutta
XHTML:ssä vaadittaisiin border="0". Mutta HTML:ssäkin esimerkiksi
href=../index.html olisi väärin, sillä kauttaviivan sisältävä arvo on syytä
kirjoittaa lainausmerkkeihin. Jos et vielä vakuuttunut, lue Jukka Korpelan
kirjoitus aiheesta.
Mitä ovat META-elementit keywords ja description?
Nimensä mukaisesti Meta-elementit ovat tietoa itse dokumentista, ja ne
sijoitetaan html-dokumentin head-osioon. Ehkä tavallisimmat Meta-elementit ovat
description ja keywords, joilla voidaan pyrkiä ohjaamaan joidenkin hakukoneiden
toimintaa. Keywords-elementillä voidaan antaa hakukoneelle lista sanoista,
joilla etsimällä juuri tämän sivun pitäisi löytyä. Description-elementin sisältö
puolestaan on lyhyt, asiallinen kuvaus sivun sisällöstä, jonka jotkut hakukoneet
voivat näyttää hakutulosluettelossa. Esimerkki näiden käytöstä:
Meta-elementtien käytöstä ei ole haittaa, mutta on myös varsin kyseenalaista,
onko siitä hyötyä. Varsinkin keywords-elementti on kärsinyt inflaation, sillä
siihen on yritetty tunkea kaikkea mahdollista kävijöiden houkuttelemiseksi.
Niinpä liian aggressiivisesti käytetty keywords-elementti voi johtaa jopa koko
sivun hylkäämiseen hakukoneen indeksistä. Keywordsiä parempi tapa onkin usein
se, että merkitsee sivun rakenteet oikein (mm. otsikot H1..H6-elementein),
jolloin hakukoneet voivat etsiä tärkeät sanat dokumentista itse.
Miten saa Netscape-selaimen näyttämään tyhjän taulukon solun?
Laita taulukon soluun jotain näkymätöntä sisältöä. Helpoin ratkaisu on
non-breaking space -merkki eli , mutta mikäli se on liian suuri, voit
käyttää myös yhden pikselin korkuista läpinäkyvää kuvaa.