# Active Server Pages

Active Server Pages (ASP) is een door Microsoft ontwikkeld onderdeel van een combinatie van softwareprogramma's om dynamische webpagina's en complete websites te genereren. De programma's draaien dus op de webserver. Het is een server-side script. ASP wordt normaliter gebruikt met Windows. Er zijn echter ook goede implementaties van ASP beschikbaar voor Unix (en verwante) platforms, waaronder Linux.

## Dynamische versus statische webpagina's

Bij statische webpagina's is er tevoren in de vorm van bestanden met de HTML code aangemaakt, en die verandert niet meer. Er staat een aantal webpagina's, in de vorm van evenzoveel bestanden in een map, op de webserver klaar. De gebruiker krijgt altijd een van de vaste, enige tijd tevoren gemaakte, webpagina's te zien. De webserver ontvangt telkens van de gebruiker een verzoek weer een van die klaarstaande webpagina's te leveren. Bij dynamische webpagina's wordt dan elke keer door de webserver een pagina 'op maat' in elkaar gezet. Een programma maakt dus een nieuw bestand met HTML-code. De webserver kan dan gebruikmaken van de speciale wensen in het verzoek van de gebruiker. Bijvoorbeeld: de gebruiker wil een selectie uit het assortiment van een webwinkel. Ook kan er op de website informatie aangeboden worden die pas beschikbaar komt nadat de website al klaar is. In hetzelfde voorbeeld is de programmeur al naar huis, maar de winkelier zet de nieuwste artikelen in de database. Vanaf dat moment zijn dankzij de dynamische webpagina's de nieuwe artikelen in de webwinkel voor de gebruiker, als hij die opvraagt, zichtbaar.

## Ondersteunde scripttalen

Een aanwijzing dat ASP gebruikt wordt door de webserver is de extensie ".asp" in de URL. PHP, ASP en dergelijke zijn de server-sidescripttalen. Naast die keuze voor bijvoorbeeld ASP of PHP kan daarom nog gekozen worden voor een specifieke programmeertaal. Meestal is dat PERL, maar bij ASP is dat in de meeste gevallen VBScript omdat dit de standaardtaal in de Microsoft-omgeving is. Verder kan er standaard gekozen worden voor JScript. ASP kan in principe alle scripttalen ondersteunen als de desbetreffende interpreter op de webserver is geïnstalleerd. Er is bijvoorbeeld ook een interpreter voor Perlscript beschikbaar via ActiveState.

## Samenwerking met een database

Een database op de server wordt gebruikt om op een handige manier grote hoeveelheden gegevens op de slaan. De gegevens zijn dan snel te vinden. Met een gekoppelde database kan een webserver van een forum, een weblog of een nieuwsapplicatie worden gebouwd. Als webserver is Apache gangbaar, maar bij ASP wordt meestal de webserver van Microsoft gebruikt: IIS. Voor de communicatie met de database heeft ASP standaard ADODB-componenten beschikbaar in plaats van het populaire MySQL.

## Cookies

Met behulp van ASP kan de webserver een session-cookie (internet) op de pc van de gebruiker zetten. Zo'n cookie geeft de webserver veel mogelijkheden om gegevens van die bezoeker bij te houden. Een deel van de gebruikers staat niet alles toe, en regelt dat door middel van strenge of minder strenge privacyinstellingen. Als de webserver van de gebruiker cookies terug ontvangt, kunnen de gegevens daaruit door de webserver worden bewaard, bijvoorbeeld als tijdelijke sessievariabelen om te weten of een bezoeker al is ingelogd.

## XML

De Microsoft.XMLDOM-component geeft ASP de mogelijkheid ook met XML te werken.

## Gebruik
### VBScript

Het gebruik van VBScript in ASP-pagina's is heel eenvoudig. De interpreter vervangt alle code die zich tussen de <% en %> bevindt. In onderstaand voorbeeld wordt Response.Write Now dynamisch vervangen door de huidige tijd van de server.

### JScript

Voordat je JScript kunt gebruiken in ASP-pagina's moet de interpreter weten dat je in JScript gaat schrijven. Dit kun je voor je hele applicatie instellen, of individueel op elke pagina. Mocht je JScript in willen stellen voor je hele applicatie, stel dan de Default ASP Language in op het App Options-tabblad van de IIS-snap-in.
Om JScript voor een enkele pagina in stellen gebruik je de volgende code:

## ASP.NET

Vanaf 2002 ontwikkelde Microsoft in plaats van ASP een opvolger daarvan: ASP.Net. ASP.NET is een taal die gebaseerd is op ASP, maar veel meer mogelijkheden heeft. Er wordt met ASP.NET gewerkt binnen het .NET-framework. Enkele concurrenten zijn: PHP (open source), Java Server Pages (JSP), Coldfusion en Ruby on Rails.

## Kosten

In tegenstelling tot de populaire LAMP-combinatie van opensourceprogramma's moet voor het gebruik van ASP worden betaald.

## Alternatieven

Voor het publiceren van een website wordt de combinatie van vier opensourceprogramma's bekend als LAMP al lange tijd het meest gebruikt. PHP heeft in LAMP de functie die ASP heeft in het alternatief van Microsoft (ASP in combinatie met Windows en IIS). De discussie PHP versus ASP(.NET) woedt al jaren.