HTML <form> method-Attribut

Definition und Verwendung

method Die Eigenschaft legt fest, wie Formulardaten gesendet werden (die Formulardaten werden an die im action-Attribut angegebene Seite gesendet).

Formulardaten können als URL-Variable (verwenden Sie method="get") oder als HTTP-POST-Transaktion (verwenden Sie method="post") gesendet werden.

Anmerkungen zu GET:

  • Fügen Sie die Formulardaten in Form von Name/Wert-Paaren der URL hinzu
  • Die URL hat eine Längenbegrenzung (etwa 3000 Zeichen)
  • Verwenden Sie GET niemals, um sensible Daten zu senden! (Wird in der URL sichtbar sein)
  • Das ist sehr nützlich für Formularübermittlungen, bei denen Benutzer die Ergebnisse als Lesezeichen hinzufügen möchten
  • GET ist besser geeignet für unsichere Daten, wie z.B. Suchstrings in Google.

Hinweise zu POST:

  • Fügen Sie Formulardaten im Haupttext der HTTP-Anfrage hinzu (Daten werden nicht in der URL angezeigt).
  • Keine Größenbegrenzung.
  • Formulare, die mit POST eingereicht werden, können nicht in Lesezeichen gespeichert werden.

Beispiel

Beispiel 1

Formular mit dem "get"-Verfahren einreichen:

<form action="/action_page.php" method="get">
  <label for="fname">名字:</label>
  <input type="text" id="fname" name="fname"><br><br>
  <label for="lname">姓氏:</label>
  <input type="text" id="lname" name="lname"><br><br>
  <input type="submit" value="提交">
</form>

Versuchen Sie es selbst

Beispiel 2

Formular mit dem "post"-Verfahren einreichen:

<form action="/action_page.php" method="post">
  <label for="fname">名字:</label>
  <input type="text" id="fname" name="fname"><br><br>
  <label for="lname">姓氏:</label>
  <input type="text" id="lname" name="lname"><br><br>
  <input type="submit" value="提交">
</form>

Versuchen Sie es selbst

Syntax

<form method="get|post">

Attributwert

Wert Beschreibung
get Standard. Fügen Sie die Formulardaten in Form einer Namen/Wert-Paar an die URL an: URL?name=value&name=value.
post Senden Sie die Formulardaten als HTTP-POST-Transaktion.

Erklärung des method-Attributs

Der Browser sendet die Daten im Formular an den Server zur Verarbeitung, indem er das durch das method-Attribut festgelegte Verfahren verwendet. Es gibt zwei Methoden: POST und GET.

Verwendet man die POST-Methode, wird der Browser die Daten nach den folgenden zwei Schritten senden. Zunächst wird der Browser eine Verbindung zum Formularverarbeitungs-Server, der im action-Attribut angegeben ist, herstellen, und nachdem die Verbindung hergestellt ist, wird der Browser die Daten aufgeteilt senden.

Auf dem Server sollte, sobald eine POST-artige Anwendung beginnt zu ausgeführt werden, von einem markanten Ort Parameter gelesen werden, und bevor diese Parameter von der Anwendung verwendet werden können, müssen diese Parameter decodiert werden. Der spezifische Server des Benutzers gibt genau an, wie die Anwendung diese Parameter akzeptieren soll.

Eine andere Möglichkeit ist die Verwendung der GET-Methode, bei der der Browser eine Verbindung zum Formularverarbeitungs-Server herstellt und alle Formulardaten in einem Übertragungsschritt sendet: Der Browser hängt die Daten direkt an die action-URL des Formulars an. Zwischen diesen beiden wird ein Fragezeichen verwendet.

Die meisten Browser können Formularinformationen über jede dieser Methoden übertragen, und einige Server akzeptieren nur Daten, die durch eine dieser Methoden bereitgestellt werden. Man kann die Methode, die das Formularverarbeitungsserver verwenden soll, um die Daten zu verarbeiten, durch das Attribut method (Methode) im <form>-Tag angeben, sei es POST oder GET.

POST oder GET?

Wenn der Server, der Formularverarbeitung durchführt, sowohl die POST- als auch die GET-Methode unterstützt, dann welche Methode sollten Sie wählen? Nachfolgend sind einige Regeln dazu aufgeführt:

  • Wenn Sie die beste Übertragungsleistung des Formulars erhalten möchten, können Sie die GET-Methode verwenden, um kleine Formulare mit nur wenigen kurzen Feldern zu senden.
  • Einige Serverbetriebssysteme beschränken die Anzahl und Länge der Befehlszeilenparameter, die sofort an die Anwendung übermittelt werden können, und in diesem Fall sollten Formulare mit vielen Feldern oder langen Textfeldern mit der POST-Methode gesendet werden.
  • Wenn Sie wenig Erfahrung im Schreiben von Server-Formularverarbeitungsanwendungen haben, sollten Sie die GET-Methode wählen. Wenn Sie die POST-Methode verwenden, müssen Sie zusätzliche Arbeiten bei der Lesung und Dekodierung durchführen, was vielleicht nicht schwer ist, aber vielleicht sind Sie nicht bereit, sich mit diesen Problemen zu befassen.
  • Wenn Sicherheit ein Problem ist, empfehlen wir die Verwendung der POST-Methode. Die GET-Methode platziert die Formularparameter direkt in der URL der Anwendung, so dass Netzwerkspione sie leicht erfassen und aus den Protokolldateien des Servers extrahieren können. Wenn sensible Informationen wie Kreditkartenkontonummern in den Parametern enthalten sind, gefährdet dies unbewusst die Sicherheit des Benutzers. POST-Anwendungen haben jedoch keine Sicherheitslücken und können mindestens eine Verschlüsselungsmethode anwenden, wenn die Parameter als separate Transaktionen an den Server zur Verarbeitung übermittelt werden.
  • Wenn Sie möchten, dass die Serveranwendung außerhalb des Formulars aufgerufen wird und Parameter an sie übermittelt werden, müssen Sie die GET-Methode verwenden, da diese Methode es ermöglicht, Formularparameter als Teil der URL zu integrieren. Andererseits möchten Anwendungen im POST-Stil, dass nach der URL noch ein zusätzlicher Übertragungsprozess durch den Browser erfolgt, bei dem der übermittelte Inhalt nicht als Inhalt des traditionellen <a>-Tags betrachtet wird.

Parameter klar übermitteln

Einige der vorgeschlagenen Punkte können auch als eine gewisse Erklärung für die Wahl dieser Methode dienen. Angenommen, Sie haben ein sehr einfaches Formular, das nur die Parameter x und y enthält. Bei der Kodierung der Werte dieser Elemente hat sie die folgende Form:

x=28&y=66

Wenn das Formular method=GET verwendet, dann sieht die URL zur Referenzierung der Serveranwendung so aus:

http://www.example.com/example/program?x=28&y=66

Zu jeder Zeit können wir einen traditionellen <a>-Tag erstellen, um ihn zu verwenden, um ein Formular mit den erforderlichen Parameterwerten aufzurufen, wie im folgenden Beispiel gezeigt:

<a href="http://www.example.com/example/program?x=28&y=66">

Das einzige Problem ist, dass das &-Zeichen, das für die Trennung der Parameter verwendet wird, auch ein Zeichensatz-Einblendungszeichen ist. Wenn ein &-Zeichen im href-Attribut des <a>-Tags platziert wird, ersetzt der Browser die folgenden Zeichen durch die entsprechenden Zeichensatz-Einblendungszeichen.

Um dies zu verhindern, müssen wir das &-Zeichen durch sein Equivalent ersetzen, d.h. durch "&" oder "&". Nach dem Ersatz wird der obige nicht-formulare Beispielaufruf des Serveranwendungsprogramms wie folgt aussehen:

<a href="http://www.example.com/example/program?x=28&y=66">

Da der &-Zeichen immer noch in URLs verwendet werden kann und möglicherweise in der Zukunft Verwirrung verursachen kann, empfehlen wir, dass Server auch die Verwendung von Semikolons als Parameter-Trennzeichen akzeptieren. Sie können auch die Dokumentation Ihres Servers überprüfen, um zu erfahren, ob dieser Funktion unterstützt wird.

Browser-Unterstützung

Chrome Edge Firefox Safari Opera
Chrome Edge Firefox Safari Opera
Unterstützung Unterstützung Unterstützung Unterstützung Unterstützung