Homepage-Webhilfe Event-Banner

Anfrage und Antwort

Wie bereits im vorherigen Thema erklärt, besitzt die Page-Klasse die Eigenschaften Request und Response, mit welchen Objekte der Klassen HttpRequest und HttpResponse abgerufen werden können, um somit Informationen der Anfrage abzurufen und die Antwort zu beeinflussen. Die wichtigsten Eigenschaften und Funktionen der zwei Klassen werden wir in diesem Thema noch genauer behandeln.


Die HttpRequest-Klasse enthält einige Eigenschaften, mit welchen Informationen zur HTTP-Anfrage abgerufen werden können. Die wichtigsten Eigenschaften sind in der untenstehenden Tabelle aufgeführt und werden im unteren Beispiel ausgegeben (auf PhysicalPath wurde aus Sicherheitsgründen im Beispiel verzichtet).

Path Der vollständige virtuelle Pfad der Website (FilePath + PathInfo).
FilePath Der virtuelle Pfad der Website.
PathInfo Der Zusatz einer Pfadangabe (spezielle ASP.NET-Funktion).
PhysicalPath Der physikalische Pfad auf dem Webserver.
Url Die URL der aktuellen Anfrage.
UrlReferrer Die URL der zuvor aufgerufenen Seite.
HttpMethod Die HTTP-Methode der Anfrage (GET, POST, aber auch z. B. HEAD).
RequestType Der Typ der Anfrage (GET oder POST).
IsAuthenticated Gibt an, ob es sich um eine authentifizierte Anfrage handelt.
IsLocal Gibt an, ob die Anfrage vom lokalen Computer (gleicher PC wie der Server) ist.
IsSecureConnection Gibt an, ob die Verbindung verschlüsselt ist.
UserAgent Der User-Agent des Browsers.
UserHostAddress Die IP-Adresse des Computers, von dem die Anfrage kommt.
UserHostName Der Hostname des Computers, von dem die Anfrage kommt.
<table>
	<tr>
		<th>Pfad:</th>
		<td><%= Request.Path %></td>
	</tr>
	<tr>
		<th>Dateipfad:</th>
		<td><%= Request.FilePath %></td>
	</tr>
	<tr>
		<th>Pfad-Info:</th>
		<td><%= Request.PathInfo %></td>
	</tr>
	<tr>
		<th>URL:</th>
		<td><%= Request.Url.ToString() %></td>
	</tr>
	<tr>
		<th>URL der vorherigen Seite:</th>
		<td><%= Request.UrlReferrer != null ? Request.UrlReferrer.ToString() : "-" %></td>
	</tr>
	<tr>
		<th>HTTP-Methode:</th>
		<td><%= Request.HttpMethod %></td>
	</tr>
	<tr>
		<th>Anfrage-Typ:</th>
		<td><%= Request.RequestType %></td>
	</tr>
	<tr>
		<th>Authentifizierung:</th>
		<td><%= Request.IsAuthenticated ? "ja" : "nein" %></td>
	</tr>
	<tr>
		<th>Lokaler Computer:</th>
		<td><%= Request.IsLocal ? "ja" : "nein" %></td>
	</tr>
	<tr>
		<th>Sichere Verbindung:</th>
		<td><%= Request.IsSecureConnection ? "ja" : "nein" %></td>
	</tr>
	<tr>
		<th>User-Agent:</th>
		<td><%= Request.UserAgent != null ? Request.UserAgent : "-" %></td>
	</tr>
	<tr>
		<th>IP-Adresse:</th>
		<td><%= Request.UserHostAddress %></td>
	</tr>
	<tr>
		<th>Hostname:</th>
		<td><%= Request.UserHostName %></td>
	</tr>
</table>
VorschauDownload

Die HttpResponse-Klasse enthält ebenfalls ein paar Eigenschaften zum Abrufen des aktuellen Status der Antwort. Dabei können diese Eigenschaften jedoch nicht nur gelesen sondern auch gesetzt werden, um somit die Antwort (engl. response) anpassen zu können. Auch hier haben wir wieder eine Tabelle zusammengestellt und ein nachfolgendes Beispiel erstellt.

Charset Die Zeichenkodierung der Antwort.
ContentType Der MIME-Typ der Antwort.
Status Die vollständige Statuszeichenkette der Antwort (StatusCode + StatusDescription).
StatusCode Der HTTP-Statuscode der Antwort.
StatusDescription Der Beschreibungs-Text des HTTP-Status der Antwort.
IsRequestBeingRedirected Gibt an, ob eine Weiterleitung aktiv ist.
Expires Die Gültigkeitsdauer des Dokuments in Minuten.
ExpiresAbsolute Der Ablaufzeitpunkt des Dokuments.
<table>
	<tr>
		<th>Zeichensatz:</th>
		<td><%= Response.Charset %></td>
	</tr>
	<tr>
		<th>MIME-Typ:</th>
		<td><%= Response.ContentType %></td>
	</tr>
	<tr>
		<th>Status:</th>
		<td><%= Response.Status %></td>
	</tr>
	<tr>
		<th>Status-Code:</th>
		<td><%= Response.StatusCode %></td>
	</tr>
	<tr>
		<th>Status-Beschreibung:</th>
		<td><%= Response.StatusDescription %></td>
	</tr>
	<tr>
		<th>Weiterleitung:</th>
		<td><%= Response.IsRequestBeingRedirected ? "ja" : "nein" %></td>
	</tr>
	<tr>
		<th>Ablaufzeitraum:</th>
		<td><%= Response.Expires.ToString() %></td>
	</tr>
	<tr>
		<th>Ablaufzeitpunkt:</th>
		<td><%= Response.ExpiresAbsolute.ToString() %></td>
	</tr>
</table>
VorschauDownload

Um mittels ASP.NET die URL-Parameter (GET-Parameter) auszulesen, können wir die Elemente des assoziativen Arrays (Objekt der Klasse NameValueCollection) QueryString der HttpRequest-Klasse abrufen. Wurde ein Parameter nicht gesetzt, so wird als Wert null zurückgegeben. Das folgende Beispiel zeigt die Verwendung der Eigenschaft QueryString:

Wert a: <%= Request.QueryString["a"] != null ? Request.QueryString["a"] : "-" %><br />
Wert b: <%= Request.QueryString["b"] != null ? Request.QueryString["b"] : "-" %><br />
<br />
<b>Links:</b><br />
<a href="Default.aspx">A: -, B: -</a><br />
<a href="Default.aspx?a=7">A: 7, B: -</a><br />
<a href="Default.aspx?b=4">A: -, B: 4</a><br />
<a href="Default.aspx?a=8&b=3">A: 8, B: 3</a>
VorschauDownload

Mittels der Funktionen AddHeader() oder AppendHeader() der HttpResponse-Klasse ist es möglich, HTTP-Header an die Antwort anzuhängen. Als Parameter werden zwei Zeichenketten übergeben: der Name der Header-Eigenschaft und der Wert der Header-Eigenschaft. Ein Vollzugriff auf alle Headers des HTTP-Responses kann über die Eigenschaft Headers abgerufen werden. Damit ist es dann z. B. auch möglich, bestehende Header-Eigenschaften zu ändern oder zu löschen (Funktion Remove()). Das Hinzufügen eines Wertes ist dort ebenfalls möglich (Funktion Add()). Die Funktion Redirect() erlaubt es, eine Umleitung durchzuführen. Als Parameter wird der Funktion eine Zeichenkette mit dem Ziel (Pfadangaben oder URLs) übergeben.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="HWhBsp.Weiterleitung_Header.Default" %>

<%
    Response.AddHeader("Content-Language", "de");
    Response.Redirect("https://www.homepage-webhilfe.de/");
%>
VorschauDownload

Der Eingangs-Stream (eingehender Datenstrom) kann über die Eigenschaft InputStream des Objekts der Klasse HttpRequest abgerufen werden. Für „normale“ Webanwendungen wird dieser Stream jedoch nicht benötigt. Die HttpResponse-Klasse enthält ebenfalls einen Datenstrom (jedoch für ausgehende Daten). Der Stream kann über die Eigenschaft OutputStream abgerufen werden. Des Weiteren gibt es die Funktionen Write() und WriteFile(), welche es ermöglichen, Daten aus Variablen oder einer Datei auf den Ausgabe-Stream zu senden.

Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen OK