Allt du behöver veta om ServerVariables
Förord
När man bygger sina websajter nöjer man sig kanske inte alltid med sitt eget huvudinnehåll utan vill komplettera med information om vad sina besökare använder för webläsare, vad de kör för operativsystem, deras IP-adress etc. För detta ändamål krävs att du använder de servervariabler som aspmotorn erbjuder och som är en samling för Request-objektet. Det finns sannerligen en hel rad att välja mellan.
Använda miljövariabler för HTTP (Servervariabler)
För att hämta servervariabelvärdet så används följande syntax:
var = Request.ServerVariables(variabelnamn)
Nedan har jag valt att presentera de servervariabler som finns tillgängliga för ASP.
Variabelnamn | Beskrivning | ALL_HTTP | Returnerar all Header-information som inte visas i någon av de andra variablerna i denna lista. |
AUTH_TYPE | Denna variabel innehåller den typ av äkthetsbevis som används. Strängen returnerar t ex Basic om verifikatet för Basic används och strängen returnerar Window NT Authentication för integrerat äkthetsbevis. Returneras en nollängssträng används inget äkthetsbevis i webservern. |
AUTH_PASSWORD | Returnerar värdet som skrivs in i klientens dialogruta för verifiering. Denna variabel är endast tillgänglig om äkthetsbeviset Basic används i webservern. |
AUTH_USER | Returnerar värdet som skrivs in i klientens dialogruta. |
CONTENT_LENGTH | Returnerar det antal byte som skriptet kan förväntas ta emot från klienten. |
CONTENT_TYPE | Returnerar innehållstypen för den information som lagras i BODY-delen av den begärda POST-metoden. |
DOCUMENT_NAME | Returnerar aktuellt filnamn. |
DOCUMENT_URI | Returnerar den virtuella sökvägen till aktuellt dokument. |
DATE_GMT | Returnerar aktuellt datum (Greenwich Mean Time). |
DATE_LOCAL | Returnerar datumet i den lokala tidszonen. |
GATEWAY_INTERFACE | Returnerar revisionen av den CGI-specifikation som används av webservern. |
HTTP_REFERER | Returnerar den adress som besökaren senast kom från. |
LAST_MODIFIED | Returnerar det datum då aktuellt dokument senast ändrades. |
PATH_INFO | Returnerar utökad sökvägsinformation som ges av klienten. Informationen består av den del som returneras efter skriptnamnet, men före querystring, om det finns någon sådan. |
PATH_TRANSLATED | Denna variabel är ett värde av PATH_INFO, men utan den utökade virtuella sökvägen. |
QUERY_STRING | Returnerar informationen efter frågetecknet(?) i sökvägen. |
QUERY_STRING_UNESCAPED | Icke URL-encoded version av querystring. |
REMOTE_ADDR | Returnerar klientens IP-adress eller klientens brandvägg. |
REMOTE_HOST | Returnerar klientens hostnamn eller motsvarande brandvägg. |
REMOTE_USER | Denna variabeln innehåller klientens användarnamn. En nollängdssträng returneras om användaren är anonym. |
REQUEST_METHOD | Returnerar request-metoden för HTTP (vanligen GET eller POST). |
SCRIPT_NAME | Returnerar skriptprogrammets namn som används. Används ASP returneras sökvägen till aktuell ASP-fil. |
SERVER_NAME | Returnerar serverns hostnamn eller IP-adress. |
SERVER_PORT | Returnerar den TCP/IP port som returneras av request. Som standard är porten 80. |
SERVER_PORT_SECURE | Returnerar en sträng med värdet 1 eller 0. Om request skickades till en säker port returneras 1, annars 0. |
SERVER_PROTOCOL | Returnerar namn och version på det begärda protokollet. Vanligen är detta HTTP/1.0 |
SERVER_SOFTWARE | Returnerar namn och version av webserverprogramvaran. |
URL | Returnerar bassökvägen. Eventuella parametrar returneras inte. |
För att se samtliga värden på dessa servervariabler så kan du köra en "dumpsida" liknande denna:
<%
Dim arrVarNamn
Dim strVarNamn
Dim iLoop
strVarNamn = "ALL_HTTP, AUTH_TYPE, AUTH_PASSWORD, " _
& "AUTH_USER, CONTENT_LENGTH, CONTENT_TYPE, " _
& "DOCUMENT_NAME, DOCUMENT_URI, DATE_GMT, " _
& "DATE_LOCAL, GATEWAY_INTERFACE, HTTP_REFERER, LAST_MODIFIED, " _
& "PATH_INFO, PATH_TRANSLATED, QUERY_STRING, " _
& "QUERY_STRING_UNESCAPED, REMOTE_ADDR, REMOTE_HOST, " _
& "REMOTE_USER, REQUEST_METHOD, SCRIPT_NAME, " _
& "SERVER_NAME, SERVER_PORT, SERVER_PORT_SECURE, " _
& "SERVER_PROTOCOL, SERVER_SOTWARE, URL"
arrVarNamn = Split(strVarNamn, ", ")
%>
Servervariabler - presentationssida
<%
For iLoop = 0 To Ubound(arrVarNamn)
%>
<% = arrVarNamn(iLoop) %>
<% = Request.ServerVariables(arrVarNamn(iLoop)) %>
<% Next %>
ALL_HTTP-variabeln
Variabeln ALL_HTTP som finns med överst i listan ovan innehåller information som du kan behöva implementera i din websida. I nedanstående kodavsnitt splittas den aktuella variabeln upp och presenteras sedan på en websida. Detta kodexempel (liksom det förra) finns med som bifogade ASP-filer till denna artikel.
<%
Option Explicit
Dim arr_strContent
Dim iLoop
arr_strContent = Split(Request.ServerVariables("ALL_HTTP"), Chr(10))
%>
ALL_HTTP - presentationssida
ALL_HTTP Innehåll
<%
For iLoop = 0 To Ubound(arr_strContent) - 1
%>
<% Response.Write Left(arr_strContent(iLoop), InStr(arr_strContent(iLoop), ":") - 1) %>
<% Response.Write Mid(arr_strContent(iLoop), InStr(arr_strContent(iLoop), ":") + 1) %>
<% Next %>
ALL_HTTP variabeln har därmed splittats upp till sju olika variabler, mer eller mindre användbara. Här följer i alla fall beskrivningar till var och en av dem.
Variabelnamn | Beskrivning |
HTTP_ACCEPT | Indikerar den typ av innehåll som besökarens webläsare accepterar. |
HTTP_ACCEPT_LANGUAGE | Specificerar användarens aktuella språk. |
HTTP_CONNECTION | Returnerar den typ av uppkoppling besökaren besitter. Här är det vanligt att kopplingen "Keep-Alive" returneras vilken är en snabb typ av webuppkoppling. |
HTTP_HOST | Returnerar namnet på servern som aktuell ASP-sida ligger på. |
HTTP_USER_AGENT | Returnerar namnet på användarens webläsare. Om namnet Mozilla returneras betyder det sannolikt att Netscape används för att det var originalnamnet på Netscape´s webläsare. |
HTTP_COOKIE | Returnerar besökarens eventuella cookies med dess innehåll. |
HTTP_ACCEPT_ENCODING | Specificerar metoden för hur data komprimeras för att sedan sändas iväg. |
De variabler ovan som kanske är mest användbara för webbyggaren är nog HTTP_HOST och HTTP_USER_AGENT. Den sistnämnde kan vara användbar om du vill anpassa din websida för olika webläsare (i första hand Internet Explorer och Netscape), eftersom dessa läser en del taggar, stilmallar och script olika.
Fil att tanka
Fil: httpdumpar.zip
Var denna artikeln användbar?
Om du gör någon intressant (eller kanske något konstigt fel) på grund av detta material så skicka gärna det med ett mail eller bifoga en länk till mig så presenterar jag detta som ytterligare exempelfiler för kursen. Om detta innehållet är felaktigt eller du lärt dig fler finesser så skriv gärna en rad./Staffan Berg
0 Kommentarer