Glengamoi (Forum) · AspHeute · .NET Heute (RSS-Suche) · AspxFiles (Wiki) · .NET Blogs
ASP German Homepage Homepage
 

Liste

.NET 2.0 (1)
.NET Allgemein (16)
.NET Fu (5)
ADO.NET (11)
Aprilscherz (3)
ASP Grundlagen (44)
ASP Tricks (83)
ASP.NET (44)
ASPIntranet.de (5)
C# (28)
Datenbank (44)
Dokumentation (4)
IIS 6.0 (1)
Komponenten (29)
Optimierung (10)
Server (21)
Sicherheit (34)
Tee Off (6)
VB.NET (6)
WAP (8)
Web Services (11)
XML (9)

RSS 2.0 - Die neuesten fünf Artikel auf AspHeute.com


 

Suchen





 

English Articles
Chinese Articles
Unsere Autoren
 
Link zu AspHeute
Impressum
Werben
Anfragen

GET oder POST, das ist hier die Frage

Geschrieben von: Christoph Wille
Kategorie: ASP Grundlagen

Es ist zwar keine Gemütsfrage, aber sehr wohl eine Frage des korrekten Programmierens, vor allem in Zeiten von Proxyservern. Heute widme ich mich den Unterschieden zwischen GET und POST, wann welche Spielart des HTTP Transfers zum Einsatz kommen sollte, und wie man zwischen diesen beiden unterscheiden kann.

Das HTTP GET Kommando

GET ist das am häufigsten verwendete Kommando des Hypertext Transfer Protocols (HTTP) - deshalb, weil jede Nicht-Formularseite von Browsern immer so aufgerufen wird - einfaches eintippen in der Adresszeile, Eingabetaste drücken, und schon wird ein GET Request nach dieser Seite abgesetzt.

Teil des GET Requests sind die Querystrings, die in ASP über die Request.QueryString Collection auslesbar sind. Herausfinden, ob ein Querystring geschickt wurde, kann man am schnellsten folgendermaßen:

If (Len(Request.ServerVariables("QUERY_STRING")) > 0) Then
  ...
End If

Dadurch wird die QueryString Collection nicht initialisiert, man spart also potentiell einiges an Zeit (das Parsing wird bis zum ersten Aufruf der Collection unterbunden).

Was sind die Vorteile oder Nachteile von GET Requests? Nun, GET Requests dürfen von Proxyservern gecacht werden - was sowohl zum Vorteil (geringe Serverlast), als auch zum Nachteil (alte Daten am Client) gereichen kann. Wenn man gar kein Caching haben möchte, muß man es so unterbinden:

Response.Expires = 0
Response.AddHeader "Pragma","no-cache"
Response.AddHeader "cache-control", "no-store"

Abschließend gilt auch, daß man GET als FORM METHOD nicht verwenden soll - ab HTML 4.0 ist GET als METHOD "deprecated", also nicht mehr empfohlen.

Formulare mit POST

Bei Formularen kommt das POST Kommando am öftesten zum Tragen. Eine entsprechendes FORM Tag sieht wie folgt aus:

<FORM METHOD="POST" ACTION="myFormHandler.asp">
...
</FORM>

GePOSTete Formulare und solche Zielseiten werden von Proxyservern nicht mehr gecacht. Dies spiegelt sich auch in ASP.NET's OutputCache Direktive wider, die standardmäßig nur GET Seiten cacht.

Wie merke ich also, ob eine Seite gepostet wurde? Das folgende Codesnippet zeigt's:

If (UCase(Request.ServerVariables("HTTP_METHOD")) = "POST") Then
   ...
End If

Das war die sichere Methode, um das Kommando ganz genau zu wissen. Wenn man nur interessiert ist, ob Parameter gepostet wurden, macht man es so:

If (Request.ServerVariables("CONTENT_LENGTH") > 0) Then
  ...
End If

Wichtig ist nur, daß CONTENT_LENGTH ohne übergebene Parameter auch leer ist, man also irrtümlich glauben könnte, es war kein POST Request. Das Auslesen der Parameter sollte man dann natürlich bequemerweise über die Request.Form Collection abwickeln.

Schlußbemerkung

Die Quintessenz des heutigen Artikels ist, daß Formulare immer mit POST abgeschickt werden sollten, außer man möchte unter Umständen ein Cachingverhalten via GET erhalten.

Verwandte Artikel

Dynamische Stylesheets
Mitlauschen bei der Browser-Webserver Kommunikation

Wenn Sie jetzt Fragen haben...

Wenn Sie Fragen rund um die in diesem Artikel vorgestellte Technologie haben, dann schauen Sie einfach bei uns in den Community Foren der deutschen .NET Community vorbei. Die Teilnehmer helfen Ihnen gerne, wenn Sie sich zur im Artikel vorgestellten Technologie weiterbilden möchten.

Haben Sie Fragen die sich direkt auf den Inhalt des Artikels beziehen, dann schreiben Sie dem Autor! Unsere Autoren freuen sich über Feedback zu ihren Artikeln. Ein einfacher Klick auf die Autor kontaktieren Schaltfläche (weiter unten) und schon haben Sie ein für diesen Artikel personalisiertes Anfrageformular.

 

Und zu guter Letzt möchten wir Sie bitten, den Artikel zu bewerten. Damit helfen Sie uns, die Qualität der Artikel zu verbessern - und anderen Lesern bei der Auswahl der Artikel, die sie lesen sollten.

Bewerten Sie diesen Artikel
 Sehr gut   Nicht genügend  
   1  2  3  4  5  
 

  
   Für Ausdruck optimierte Seite

©2000-2006 AspHeute.com
Alle Rechte vorbehalten. Der Inhalt dieser Seiten ist urheberrechtlich geschützt.
Eine Übernahme von Texten (auch nur auszugsweise) oder Graphiken bedarf unserer schriftlichen Zustimmung.