ASP 101 - Active Server Pages 101 - Web05
The Place ASP Developers Go!



Windows Technology Windows Technology
15 Seconds
4GuysFromRolla.com
ASP 101
ASP Wire
VB Forums
VB Wire
WinDrivers.com
internet.commerce internet.commerce
Partners & Affiliates
ASP 101 is an
internet.com site
ASP 101 is an internet.com site
IT
Developer
Internet News
Small Business
Personal Technology

Search internet.com
Advertise
Corporate Info
Newsletters
Tech Jobs
E-mail Offers

ASP 101 News Flash ASP 101 News Flash



 Top ASP 101 Stories Top ASP 101 Stories
Getting Scripts to Run on a Schedule
The Top 10 ASP Links @ Microsoft.com
What is Adovbs.inc and Why Do I Need It?

QUICK TIP:
Reduce Web Form Spam by Checking Server Variables
Show All Tips >>
ASP 101 RSS Feed ASP 101 Updates


An Overview of Classic ASP's Request Object

by Paul DeBrino

The Request Object receives the values that the client's browser passed to the server during an HTTP request.

When you surf to an address that begins with HTTP, the server you're visiting treats that as an "HTTP request"; you are in fact "requesting" that a particular web page is displayed to you. The same applies to any http hyperlinks that you click. A lot more information is being passed back and forth, between your PC and the server of the site you're visiting, than you may be aware of. This chunk of data is called a "request object". Along with the URL you've requested, information about your browser, IP address, the last URL you visited and more is being sent along with your request to view a particular web page. On the flip side, in addition to the web page you requested, the server also sends back server-related information in the same request object.

All this data gets passed in the HTTP request (a.k.a Request Object). Whether it was posted via an online form you filled in ..or.. embedded in the URL as name-value pairs, it all ends up in the Request object. How does that happen, you wonder? That's a helpful feature of Microsoft IIS (internet information services), whereas systems/languages such as Unix/Perl must parse/extract that information manually.

To make life a little simpler, the Request Object has several "collections". A collection is just a fancy word for grouping, segregating or classifying all of the information that's being exchanged. For example, input-capable fields on a form that is sent via "method=post" end up in collection "Form", while name-value pairs sent in the URL (or from a form sent via "method=get") end up in collection "QueryString", etc.

  • ClientCertificate: The values of fields stored in the client certificate that is sent in the HTTP request.
  • Cookies: The values of cookies sent in the HTTP request.
  • Form: The values of form elements in the HTTP request body.
  • QueryString: The values of variables in the HTTP query string.
  • ServerVariables: The values of predetermined server/environment variables.

The syntax is:
     Request[.collection|property|method](variable)

All request object variables can be accessed directly by calling Request(variable) without the collection name. In this case, the Web server searches the collections in the following order:

  1. QueryString
  2. Form
  3. Cookies
  4. ClientCertificate
  5. ServerVariables

If a variable with the same name exists in more than one collection, the Request object returns the first instance encountered. It is strongly recommended that, when referring to members of the ServerVariables collection, the full name be used. For example, rather than Request("AUTH_USER") use Request.ServerVariables("AUTH_USER").

The following is a script that will display the Request Form collection followed by the ServerVariables collection. Save this script as "view_request.asp". To see it work, code your form to have: ACTION="view_request.asp"

view_request.asp
<%@LANGUAGE="VBSCRIPT"%>
<% option explicit %>
<%
' Written by Paul DeBrino of Infinity Research and Development, Inc. (infinity-rd.com)
' Dumps all name-value pairs from POST action, then follows that with server variables.
%>
<%
' Sample of how to ensure visitor arriving on SSL secure channel:
' If (Request.ServerVariables("HTTPS") = "off") Then
'    Response.Redirect "https://" + Request.ServerVariables("SERVER_NAME") _
'      + Request.ServerVariables("PATH_INFO")
' End If
%>
<!-- Show greeting using selected server variables -->
<FONT SIZE=3>
Hello visitor from IP <%= Request.ServerVariables("REMOTE_ADDR") %>
<BR>Your browser identified itself as <%= Request.ServerVariables("HTTP_USER_AGENT") %>.
<P>
<!-- Show all form variables -->
<TABLE BORDER=2>
<TR>
 <TD><B>Form Variable</B></TD>
 <TD><B>Value</B></TD>
</TR>
<%
Dim Item
For Each Item In Request.Form
%>
<TR>
 <TD><FONT SIZE="-1"><%= Item %></FONT></TD>
 <TD><FONT SIZE="-1"><%= Request.Form(Item) %> </FONT></TD>
</TR>
<% Next %>
</TABLE>
</P><P>
<!-- Show all server variables -->
<TABLE BORDER=2>
<TR>
 <TD><B>Server Variable</B></TD>
 <TD><B>Value</B></TD>
</TR>
<% For Each Item In Request.ServerVariables %>
<TR>
 <TD><FONT SIZE="-1"><%= Item %></FONT></TD>
 <TD><FONT SIZE="-1"><%= Request.ServerVariables(Item) %> </FONT></TD>
</TR>
<% Next %>
</TABLE>
</P>
</FONT>

More Information

For more information on the Request Object, and to see a list of applicable variables and uses, please visit: http://www.microsoft.com/windows2000/en/server/iis/htm/asp/vbob5ulw.htm.


Paul DeBrino
Infinity Research and Development, Inc.
a Web Hosting and Graphic Design Company
www.infinity-rd.com


Home |  News |  Samples |  Articles |  Lessons |  Resources |  Forum |  Links |  Search |  Feedback

Internet.com
The Network for Technology Professionals

Search:

About Internet.com

Legal Notices, Licensing, Permissions, Privacy Policy.
Advertise | Newsletters | E-mail Offers