ASP kezdőknek - 5. rész: Globális szerverváltozók

 

A globális szerverváltozók segítségével összehangolhatjuk az ASP oldalaink működését, valamint lekérdezhetünk néhány fontos adatot a szerverrel, illetve az aktuális látogatóval kapcsolatban.

 

Mik is ezek a szerverváltozók

 

A szerverváltozók olyan globálisan – bármely  ASP lapból – elérhető adatok, amiket a szerver őriz és a szerver beállításait, vagy az adott látogató rendszerkörnyezetét tartalmazza. Lekérdezhetjük pl., hogy a szerver milyen szoftvert futtat, vagy hogy a látogató milyen böngészőt használ. Nyomon is tudjuk követni a látogatót, mivel a kapcsolódó kliens gép (vagy bizonyos esetekben csak a proxy szerver) IP címe is egyszerűen lekérdezhető. Ez utóbbi főleg akkor lehet hasznos, ha látogató statisztikát szeretnénk készíteni. Mivel egy látogató általában nem csak egy lapot tölt le a szerverről, az IP címek ismeretében ki tudjuk szűrni, hogy ki az új látogató és ki az, aki csak egy újabb lapot töltött le.

 

Hogyan kérdezzük le ezeket a változókat?

 

A szerverváltozókra a nevükkel hivatkozhatunk. Fontos, hogy a pontos nevet adjuk meg, különben nem kapjuk meg a kért adatot. Az alábbi sor lekérdezi és az IPCIM változóba tölti a kapcsolódó kliens gép IP címét (vagy a proxy szerverét):

 

IPCIM = Request.Servervariables("REMOTE_ADDR")

 

A fontosabb szerverváltozók

 

Az alábbiakban felsorolom a fontosabb szerverváltozókat, amikre szükségünk lehet ASP alkalmazásaink fejlesztése során, némi megjegyzés mellett. A megadott változóneveket egyszerűen be kell helyettesíteni a fenti példába a REMOTE_ADDR helyére.

 

LOCAL_ADDR: A szervergép IP címét adja meg.

PATH_INFO: Az adott script elérési útját adja meg (a szerver-gyökérhez viszonyított relatív elérési út).

 

QUERY_STRING: A querystring-et* adja meg egyben, tehát nem bontja le paraméterekre.

 

REMOTE_ADDR: A kapcsolódó gép IP címét adja meg. Ha a látogató proxy szerveren keresztül hívta le az oldalt, akkor itt a proxy szerver IP címe fog szerepelni.

 

REQUEST_METHOD: Ez főleg űrlapok feldolgozásakor lehet hasznos. Azt adja meg, hogy az utolsó kérés GET vagy POST módban történt-e.

 

SERVER_NAME: A szervergép neve. Általában itt a szerver szoftver alap (gyökér) címe van megadva.

 

SERVER_SOFTWARE: A szerver szoftverét adja meg. Az ASP-t futtatni képes szerverek általában valamilyen IIS verziót futtatnak.

 

HTTP_ACCEPT_LANGUAGE: A látogató böngészőjének nyelvét adja meg. Ennek alapján akár különböző tartalmat is küldhetünk a különböző nyelvű látogatóknak. A magyar nyelvű böngészőknél itt HU szerepel.

 

HTTP_USER_AGENT: A kliens gép rendszerkörnyezetét adja meg. Általában a böngésző típusa és az operációs rendszer látszik itt. Internet Explorer 5.5 és Windows 2000 esetén Pl.: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0; Terminal)

 

HTTP_VIA: Ha a látogató proxy szerveren keresztül érte el az oldalt, akkor itt a proxy szerver adatai lesznek.

 

HTTP_X_FORWARDED_FOR: Itt pedig az az IP cím szerepel, amelyre a proxy szerver továbbítja a csomagokat. Ha tehát a látogató proxyn keresztül kérte le az oldalt, itt le tudjuk kérdezni a valódi IP címét.

 

További szerverváltozók

 

Természetesen nem csak ennyi szerverváltozó van. Akit érdekelnek a továbbiak, az próbálja ki az alábbi ASP kódot. Ennek segítségével lekérdezhetjük az összes lehetséges szerverváltozót és azok értékét:

<%@ LANGUAGE = VBScript %>

<%

FOR EACH name IN Request.ServerVariables

       Response.Write ("<P><B>" & name & "</B>:")

       Response.Write (Request.ServerVariables(name))

NEXT

%>

 

Alkalmazás-változók

 

Az előző részben tárgyaltuk, hogy a menetekhez a Session objektumban rendelhetünk változókat, és azokat később bármelyik ASP oldalból kiolvashatjuk. Ugyanígy lehet használni az Application objektumot is. A különbség annyi, hogy míg a Session objektum változói törlődnek, amint a menet véget ér, az Application objektumban tárolt adatok egészen addig nem törlődnek, amíg a szerver gépet vagy a szoftvert újra nem indítják. Éppen ezért – erőforrás kímélés végett – nem ajánlatos nagy adatmennyiséget elhelyezni benne. Csak indokolt esetben használjuk! Beállítani és lekérdezni ezeket a változókat ugyanúgy kell, mint ahogy azt a Session objektumnál tettük:

 

Beállítás:

Application("valtozo") = "adat"

Lekérdezés:

Adat = Application("valtozo")

 

         Ezzel az alapokat azt hiszem be is fejeztük. Remélem, hogy e cikksorozat legalább egy ugródeszkát jelenthetett az olvasó számára. Továbbá tervezem egy középhaladóknak szóló cikk írását, amiben az elterjedtebb ASP komponensek használatát írnám le. Aki mélyebben szeretne megismerkedni az ASP-vel és különösen a most divatos ASP.NET technikával, annak ajánlom az alábbi oldalakat, ahonnan rengeteg információ beszerezhető:

 

ASP Index: http://www.aspin.com

ASP Resources: http://www.asp-dev.com/

ASP Tutorial: http://www.w3schools.com/asp/default.asp

4 Guys from Rolla: http://4guysfromrolla.com/

ASP Free: http://www.aspfree.com/

 

Karsai Balázs - moha@pro.hu