The HttpRequest class wraps all information that a
client browser passes to the server during an HTTP request. It
includes client certificates, cookies, and values submitted through
HTML form elements. You can access this information in its entirety
as a System.IO.Stream object through the
InputStream property, or you can use one of the
more useful higher-level properties.
The QueryString property allows you to retrieve
values from the URL's query string, which can
transfer information from one ASP.NET page to another. This query
string takes the form of a series of name/value pairs appended to the
URL after a question mark (for example, the client request
http://www.myapp.com/mypage.aspx?var1=hi will
result in a value of "hi" for
Request.QueryString["var1"]). The
QueryString collection is limited to string data
and should not contain sensitive information, as it is clearly
visible to the user. To ensure compatibility with all browsers, you
should not store more than about 1000 bytes in the query string.
The HttpRequest class also exposes an
HttpCookieCollection object in the
Cookies property. This is a collection of
client-side cookies that your script (or other scripts on your
server) have created. They are transmitted to the server with each
request in the HTTP Cookie header. This collection is read-only. If
you want to modify or add a cookie, use the
HttpResponse.Cookies property instead.
The HttpRequest class provides some frequently
used, lower-level properties. For example, the
Form collection wraps the information returned
from the HTML form elements, which you will typically access through
the higher-level web control abstraction. Similarly, the
Headers and ServerVariables
collections allow you to access HTML headers and server variables
directly, provided you know their names. Many of these variables now
have corresponding read-only properties that you can use more easily,
like HttpMethod (the data transfer method like GET
or POST), UserHostAddress (the IP address of the
client), and UserHostName (the DNS name of remote
client). The Browser property is a reference to an
HttpBrowserCapabilities object with full
information about the user's browser.
Additional information available in the
HttpRequest class includes the currently requested
URL (Url), the URL from which the request is being
made (UrlReferrer), and the root path for the
current ASP.NET application as a virtual path
(ApplicationPath) or physical filesystem path
(PhysicalApplicationPath).
public sealed class HttpRequest {
// Public Constructors
public HttpRequest(string filename, string url, string queryString);
// Public Instance Properties
public string[ ] AcceptTypes{get; }
public string ApplicationPath{get; }
public HttpBrowserCapabilities Browser{set; get; }
public HttpClientCertificate ClientCertificate{get; }
public Encoding ContentEncoding{set; get; }
public int ContentLength{get; }
public string ContentType{set; get; }
public HttpCookieCollection Cookies{get; }
public string CurrentExecutionFilePath{get; }
public string FilePath{get; }
public HttpFileCollection Files{get; }
public Stream Filter{set; get; }
public NameValueCollection Form{get; }
public NameValueCollection Headers{get; }
public string HttpMethod{get; }
public Stream InputStream{get; }
public bool IsAuthenticated{get; }
public bool IsSecureConnection{get; }
public NameValueCollection Params{get; }
public string Path{get; }
public string PathInfo{get; }
public string PhysicalApplicationPath{get; }
public string PhysicalPath{get; }
public NameValueCollection QueryString{get; }
public string RawUrl{get; }
public string RequestType{set; get; }
public NameValueCollection ServerVariables{get; }
public string this[string key]{get; }
public int TotalBytes{get; }
public Uri Url{get; }
public Uri UrlReferrer{get; }
public string UserAgent{get; }
public string UserHostAddress{get; }
public string UserHostName{get; }
public string[ ] UserLanguages{get; }
// Public Instance Methods
public byte[ ] BinaryRead(int count);
public int[ ] MapImageCoordinates(string imageFieldName);
public string MapPath(string virtualPath);
public string MapPath(string virtualPath, string baseVirtualDir, bool allowCrossAppMapping);
public void SaveAs(string filename, bool includeHeaders);
public void ValidateInput( );
}