asphelper.de - ASPKurs - Request-Objekt

Link: Wichtiger Hinweis in eigener Sache!


Token-Quellcode-TokenDie ASP-ObjekteApplication-ObjektASPError-Objekt
ObjectContext-ObjektRequest-ObjektResponse-ObjektServer-Objekt
Session-ObjektDie @-DirektivenDie Include-AnweisungGlobal.asa




Das Versenden von Daten per HTTP erfolgt in 2 Richtungen: Vom Client an den Server, und natürlich vom Server an den Client. Alle Informationen, die vom Client an den Server per HTTP übersendet werden, wird per Request bearbeitet. Das Senden von Informationen vom Server an den Client erfolgt mit dem ASP-Objekt Response.

Zuerst möchte ich das Request-Objekt darstellen. Mit dem Request-Objekt können auch permanente Cookies bearbeitet werden, ebenfalls Clientzertifikate, z.B. bei SSL-Verschlüsselung.
Auflistungen
ClientCertificateLiefert Daten aus einem Zertifikat zurück, das zumeist zur Identifikation dient, z.B. SSL-Zertifikate.
CookiesPermanente Cookies bearbeiten.
FormAuslesen des HTTP-Anforderungsinhalts welche per Post-Methode versandt wurden.
QueryStringAuslesen des HTTP-Anforderungsinhalts welche per Get-Methode versandt wurden.
ServerVariablesZuvor festgelegte Umgebungsvariablen auslesen.
 
Eigenschaften
TotalBytesAnzahl der Bytes, die der Client im HTTP-Anforderungsinhalt sendet.
 
Methoden
BinaryReadAuslesen von Daten die per Post übertragen wurde.


Werden Daten versendet, gibt es 2 Möglichkeiten, per Get & Post. Werden die Daten per Get-Methode versandt, so werden die Daten an den URL angehängt. Dieses Sendemethode hat den Vorteil, daß die Datenübergabe sehr einfach funktioniert. Allerdings hat diese auch ein Nachteil: Die Anzahl der Zeichen ist begrenzt. Beim Internet Explorer sind dies rund 2000 Zeichen, beim Netscape rund 5000 Zeichen. Ein weiterer Nachteil ist die einfache Lesbarkeit. Denn jeder kann die Daten sehr einfach auslesen, da alle Werte per URL übergeben werden.

Die Post-Methode hat den Vorteil, eine (fast) unbegrenzte Anzahl von Zeichen übertragen zu können, unabhängig vom Browser. Dazu ist die Post-Methode sicherer. Denn das Auslesen der Daten ist für Aussenstehende weitaus schwieriger. Per Get versendete Daten werden mit Request.QueryString("VariablenName") ausgelesen, per Post versandte Daten mit Request.Form("VariablenName").

Bei einigen Formulare ist es nicht sicher, ob die Daten per Get oder Post versendet werden. Natürlich könnte man Request.Querystring und Request.Form für jede Variable setzen, allerdings wäre dies sehr aufwendig. Hierzu gibt es die Anweisung Request("VariablenName"). Allerdings sollte diese Methode sparsam eingesetzt werden.
1   
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<% @ Language="VBScript" %>
<% Option Explicit

Dim FormText, PostText, Text
FormText = Request.Form("FormText")
PostText = Request.QueryString("PostText")
Text = Request("PostText")
If FormText = "" Then
  %>
  <form action="Test.asp" method="Post">
    <input type="text" name="FormText" id="FormText">&nbsp;
    <input type="submit" value="Senden">
  </form>
  <%
  Response.Write("Post: " & PostText)
  Response.Write("<br>Text: " & Text)
  Response.Write("<br><br>Anzahl Bytes: " & Request.TotalBytes)
Else
  %>
  <a href="Test.asp?PostText=Hallo+Welt">Test.asp</a>
  <%
  Response.Write("<br><br>Anzahl Bytes: " & Request.TotalBytes)
  Response.Write("<br>" & FormText)
End if
%>

Werden Daten per Post übertragen so kann mit TotylBytes ermittelt werden, wieviel Bytes übertragen wurden.

Servervariablen
Request.Servervariables stellt viele Informationen vom Client und Server zur Verfügung. In einigen Fällen kann dies sehr hilfreich sein. Das nachfolgende Beispiel demonstriert die Ausgabe der IP-Adresse des Client. Dazu werden alle Informationen aus Servervariables ausgegeben.
1   
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<% @ Language="VBScript" %>
<% Option Explicit

Dim Variable, Inhalt, IP

IP = Request.ServerVariables("REMOTE_ADDR")
Response.Write("<b>IP: " & IP & "</b>")

Response.Write("<table>")

for Each Variable in Request.ServerVariables
  Inhalt=Request.ServerVariables(Variable)
  if Inhalt="" then Inhalt="nicht definiert" %>
  <tr>
    <td bgcolor="#e0ecfe">
      <font face="serif,sans-serif,arial">
        <% Response.Write(Variable) %>
      </font>
    </td>
    <td bgcolor="#30649e">
      <font face="serif,sans-serif,arial" color="#ffffff">
        <% Response.Write(Inhalt) %>
      </font>
    </td>
  </tr>
<% Next %>
</table>

Die Zeile 6 liest die IP-Adresse des Client aus. Läuft der Internet-Zugang des Clients über einen Proxy-Server, so wird nicht die IP-Adresse des Client angezeigt, sondern des Proxy-Server. Die Zeilen 11-26 geben alle Servervariablen in einer For Each - Schleife aus.


Zurück  |  Vor

top top
© Copyright By Klaus Keller, 2001-2008 - Alle Rechte vorbehalten.