Heim >Web-Frontend >HTML-Tutorial >Der Unterschied zwischen den beiden Datenübertragungsmethoden method=post/get in der Form form_HTML/Xhtml_Webseitenproduktion

Der Unterschied zwischen den beiden Datenübertragungsmethoden method=post/get in der Form form_HTML/Xhtml_Webseitenproduktion

WBOY
WBOYOriginal
2016-05-16 16:40:312265Durchsuche

Das Formular bietet zwei Methoden zur Datenübertragung: Abrufen und Posten. Obwohl es sich hierbei um beide Arten der Übermittlung von Daten handelt, unterscheiden sie sich in der tatsächlichen Übermittlung erheblich und können schwerwiegende Auswirkungen auf die Daten haben. Obwohl der Webcontainer einige Unterschiede zwischen den beiden abgeschirmt hat, um Variablenwerte bequem zu erhalten, wird das Verständnis der Unterschiede zwischen den beiden auch bei der zukünftigen Programmierung hilfreich sein.

Die Get- und Post-Methoden in Form entsprechen den GET- und POST-Methoden im HTTP-Protokoll während des Datenübertragungsprozesses. Die Hauptunterschiede zwischen den beiden sind wie folgt:

1. Get wird zum Abrufen von Daten vom Server verwendet, während Post zum Übertragen von Daten an den Server verwendet wird.

2. Get fügt die Daten im Formular der URL hinzu, auf die die Aktion zeigt, in der Form „variable=value“, und die beiden werden mit „?“ verbunden, und jede Variable wird mit „&“ verbunden. ; Post fügt die Daten im Formular in den Datenkörper des Formulars ein und übergibt sie entsprechend den Variablen und Werten an die URL, auf die die Aktion verweist.

3. Get ist unsicher, da die Daten während des Übertragungsvorgangs in der angeforderten URL abgelegt werden und viele vorhandene Server, Proxyserver oder Benutzeragenten die Anforderungs-URL in Protokolldateien aufzeichnen und dann ablegen irgendwohin, damit einige private Informationen von Dritten eingesehen werden können. Darüber hinaus können Benutzer die übermittelten Daten auch direkt im Browser sehen und einige interne Systemmeldungen werden dem Benutzer angezeigt. Alle Post-Vorgänge sind für Benutzer unsichtbar.

4. Die von Get übertragene Datenmenge ist gering, hauptsächlich weil sie durch die URL-Länge begrenzt ist, während Post eine große Datenmenge übertragen kann, sodass Sie Post nur beim Hochladen von Dateien verwenden können (natürlich). Es gibt noch einen weiteren Grund, der später besprochen wird.

5. Get beschränkt den Wert des Datensatzes im Formular auf ASCII-Zeichen, während Post den gesamten ISO10646-Zeichensatz unterstützt.

6. Get ist die Standardmethode von Form.

Die mit Post übertragenen Daten können durch Einstellen der Kodierung korrekt in Chinesisch konvertiert werden, während sich die mit Get übertragenen Daten nicht geändert haben. Darauf müssen wir bei künftigen Verfahren achten.

_______________________________________________________________________________________________

1 Die Get-Methode leitet die Daten des Benutzers über die URL-Anfrage weiter, verbindet die Namen jedes Felds im Formular und seinen Inhalt als Zeichenfolgenpaar und platziert sie in der Programm, auf das durch das Aktionsattribut verwiesen wird, z. B. http://www.mdm.com/test.asp?name=asd&password=sad, werden die Daten direkt auf der URL angezeigt, genau wie der Benutzer klickt ein Link; die Post-Methode verwendet den HTTP-Post-Mechanismus, um das Formular zu konvertieren. Der Name jedes Felds und sein Inhalt werden im HTML-Header (Header) platziert und zur Verarbeitung durch das Programm, auf das das Aktionsattribut zeigt, an den Server gesendet. Das Programm liest die Formulardaten über die Standardeingabemethode (stdin) und fügt sie dem Server hinzu. Verarbeitung

2 Die Get-Methode erfordert die Verwendung von Request.QueryString, um den Wert der Variablen zu erhalten Methode verwendet Request.Form, um auf den übermittelten Inhalt zuzugreifen

3 Die von der Get-Methode übertragene Datenmenge ist im Allgemeinen auf etwa 2 KB begrenzt, aber die Ausführungseffizienz ist besser als bei der Post-Methode Die von der Post-Methode übertragene Datenmenge ist relativ groß und wartet darauf, dass der Server die Daten liest. Es gibt jedoch auch eine Byte-Beschränkung, um zu verhindern, dass der Server große Datenmengen für böswillige Angriffe verwendet . Laut Microsoft ist die maximale Datenmenge, die mit Request.Form() empfangen werden kann, auf 80 KB in IIS 4 und 100 KB in IIS 5 begrenzt.

Vorschlag: Sofern nicht Stellen Sie sicher, dass die von Ihnen übermittelten Daten sofort übermittelt werden können. Versuchen Sie bitte, die Post-Methode zu verwenden

4. Das Senden von Daten über die Get-Methode bringt Sicherheitsprobleme mit sich, z. B. eine Anmeldeseite und das Senden von Daten über die Get-Methode Wenn die Seite zwischengespeichert werden kann oder andere auf den Computer des Kunden zugreifen können, können das Konto und das Kennwort des Benutzers aus dem Verlaufsdatensatz abgerufen werden. Daher wird empfohlen, für die Formularübermittlung die Post-Methode zu verwenden ; Die Post-Methode wird gesendet. Ein häufiges Problem bei der Formularseite besteht darin, dass beim Aktualisieren der Seite ein Dialogfeld angezeigt wird.

Empfehlung: Aus Sicherheitsgründen wird die Verwendung empfohlen Posten, um Daten zu übermitteln

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn