Ongelmaan on kehitelty muutamia ratkaisuja, joista käyttäjän kannalta vaivattomin on html-kieleen upotettujen ohjausrakenteiden ajaminen jo valmiiksi www-palvelimen päässä. Hyvänä esimerkkinä on esimerkiksi tiedoston viimeisen muutosajan näyttäminen sivun lopussa. Varsinkin tietokantojen käsittelyssä ja raportointisivujen toteutuksessa ns. dynaamiset sivunkuvauskielet ovat käyttökelpoisia. Www-palvelinohjelmistojen valmistajat ovat testanneet ja lisänneet omiin ohjelmiinsa hyväksi havaitsemiaan laajennuksia. Varsin kattava selonteko on Apache-palvelinohjelmistoon liittyvässä Apache Week-julkaisussa [1]
Dynaamisilla sivunkuvauskielillä onkin paljon ominaisuuksia jotka on peritty cgi-bin-ohjelmilta [2], mutta perimmäisenä ideana on kirjoittaa ohjelmointikielen ohjauskomentoja normaalin html:n joukkoon ja samalla kun sivua haetaan, ajaa koodattu sivu palvelimen ohjelman läpi ennen asiakasohjelmalle lähettämistä. Tällainen menettely sopii hyvin jos sivuilla olevat ohjelmat ovat melko pieniä koska muutoin voi seurauksena olla palvelimen kuormittuminen ja sivujen latautumisen hidastuminen. Todella pitkien html-sivujen ylläpitäminen on hankalaa ja silloin olisikin parempi ohjelmoida tarvittavat ohjelmat cgi-bin-rajapintaa käyttäen joko skriptikielillä Perl [3], Tcl [4] tai normaaleilla ohjelmoitikielillä kuten C ja C++.
PHP:tä voidaan käyttää esim Apachen, Netscapen servereiden sekä NCSA:n servereiden kanssa. PHP on täysin vapaa ohjelmisto ja siihen löytyy paljon esimerkkiohjelmia ja ohjekirja suoraan www-palveluna. Käytännön kokemuksen kautta olen myös huomannut että PHP:n postituslistan kautta saa php-ogelmaan vastauksen todella ripeästi.
Ohjelmien kirjoittaminen dynaamisilla sivunkuvauskielillä on nopeaa ja helpohkoa. Ongelmana on monesti se että sivut ja ohjelmat laajenevat liikaa, jolloin niiden ajoajat kasvavat ja niistä saatava hyöty pienenee. Nopeassa ohjelmoinnissa voi valitettavan usein koodin dokumentointi jäädä turhan vähälle, jolloin ylläpidettävyys kärsii.
Dynaamisten sivunkuvauskielten turvallisuudessa on paljonkin parannettavaa, mutta se tapahtuisi käytettävyyden ehdoilla. Useimmissa kielissä onkin ylläpitäjää kehoitettu tarkasti rajaamaan kielen optiot ja käyttäjille sallitut toimenpiteet. Yleensä turvallisinta on jättää ohjelmointi vain osaaviin käsiin, ammattilaisten hoiviin. Sivuilla olevia ohjelmia ajetaan yleisimmin samalla tunnuksilla ja oikeuksilla kuin www-serveriäkin, jolloin väärillä komennoilla voisi kotisivun omistaja tehdä paljonkin tuhoa. PHP ja ePerl pystyvät ajamaan sivuja myös pelkästään sivun omistajan oikeuksilla, mutta systeemin konfiguroimisessa on vielä paljon kehiteltävää.
Dynaamisilla sivunkuvauskielillä voidaan toteuttaa pieniä kokonaisuuksia ja ehkä koko palvelimen sivuille saada yhtenevää ilmettä esim ala- ja yläosien automatisoinneilla. Niiden käyttö on melko vaivatonta ja nopeaa. Lisää tietoa kehityksen vaiheista ja kehityssuunnista on hyvä seurata uutisryhmistä [8].
Esimerkkejä sivunkuvauskielten käytöstä löytyy Suomestakin, esimerkiksi ssi:tä käytetään Iltalehden www-palvelussa [9]. PHP on käytössä mm. A-Lehtien autojen hintataulukoissa [10]. Neoscriptistä löytyi useampia paikkoja, missä sitä oli käytetty [11], [12], [13]. EPerl:stä on olemassa testiohjelmia [14]. Javascriptistä tietoja löysin Netscapen palvelimelta [15] ja Yahoon [16] kautta.
[2] Cgi-bin määrittely (**)
<URL:http://hoohoo.ncsa.uiuc.edu/cgi/>
[3] Perl-esittely (***)
<URL:http://www.perl.com/perl/>
[4] Tcl/tk-kotisivu (**)
<URL:http://www.neosoft.com/tcl/default.html>
[5] PHP-kotisivu (*****)
<URL:http://www.vex.net/php>
[6] NeoScript-kotisivu (***)
<URL:http://www.neosoft.com/neoscript>
[7] embedded Perl5-esittely (***)
<URL:http://www.engelschall.com/sw/eperl/>
[8] Keskutelua Unix www-palvelimista (****)
<news:comp.infosystems.www.servers.unix> Iltalehden www-palvelu (**)
<URL:http://www.iltalehti.fi>
[10] A-lehtien autohintataulukko (**)
<URL:http://www.apu.fi/autot.phtml>
[11] Neoscript: library and examples (**)
<URL:http://www.neosoft.com/neoscript/userinfo/library.html>
[12] NeoWebScript demos (***)
<URL:http://www.hav.com/neoscript/default.htm>
[13] Dr. Daves Neoscript pages (*)
<URL:http://www.neosoft.com/~dlgates/uk/ukgeneral.html>
[14] ePerl: esimerkkejä (***)
<URL:http://www.engelschall.com/sw/eperl/example/>
[15] Netscape Corp. (**)
<URL:http://home.netscape.com/>
[16] Yahoo: Javascript (****)
<URL:http://www.yahoo.com/Computers_and_Internet/Programming_Languages/JavaScript/>