Was ist die Standardform-HTTP-Methode?

147

Welche Standard-HTTP-Methode wird verwendet, wenn ein HTML-Formular ohne Angabe einer Methode gesendet wird? ERHALTEN oder POSTEN?

Hat sich dieses Verhalten jemals zwischen HTML-Standards geändert?

Bitte zitieren Sie nach Möglichkeit ein W3C-Standarddokument.

David
quelle
1
Wurde hier bereits hervorragend beantwortet (mit W3C-Spezifikation und allem): stackoverflow.com/questions/2225735/…
Pekka

Antworten:

171

Es ist GET.

Werfen Sie einen Blick W3C Superceded Recommendation 17.3 Das FORM-Element .

Auszug:

<!ATTLIST FORM
  %attrs;                              -- %coreattrs, %i18n, %events --
  action      %URI;          #REQUIRED -- server-side form handler --
  method      (GET|POST)     GET       -- HTTP method used to submit the form--
  enctype     %ContentType;  "application/x-www-form-urlencoded"
  accept      %ContentTypes; #IMPLIED  -- list of MIME types for file upload --
  name        CDATA          #IMPLIED  -- name of form for scripting --
  onsubmit    %Script;       #IMPLIED  -- the form was submitted --
  onreset     %Script;       #IMPLIED  -- the form was reset --
  accept-charset %Charsets;  #IMPLIED  -- list of supported charsets --
  >

Gut gelesen

Methoden GET und POST in HTML-Formularen - was ist der Unterschied?

Drew Wills
quelle
15

Hier ist die W3C-Referenz, die besagt, dass GET die Standardeinstellung ist.

Jon Seigel
quelle
9

Wenn nicht angegeben, ist der Standardwert GET. Ich sehe keinen Hinweis darauf, dass dieses Verhalten jemals anders war. Und es ist sinnvoll, dass GET die Standardeinstellung ist, da hier angegeben wird, dass die Methode für Aktionen ohne Nebenwirkungen verwendet werden soll.

http://www.faqs.org/faqs/www/cgi-faq/section-37.html

Zitate von http://www.w3.org/TR/html401/interact/forms.html#h-17.3 :

method = get | post [CI]
Dieses Attribut gibt an, welche HTTP-Methode zum Senden des Formulardatensatzes verwendet wird. Mögliche Werte (ohne Berücksichtigung der Groß- und Kleinschreibung) sind " get" (Standardeinstellung) und " post". Informationen zur Verwendung finden Sie im Abschnitt zum Senden von Formularen.

17.13.1 Formularübermittlungsmethode
Das Methodenattribut des FORMElements gibt die HTTP-Methode an, mit der das Formular an den Verarbeitungsagenten gesendet wird. Dieses Attribut kann zwei Werte annehmen:

  • get: Bei der HTTP-Methode "get" wird der Formulardatensatz an den durch das Aktionsattribut angegebenen URI angehängt (mit einem Fragezeichen ("?") als Trennzeichen), und dieser neue URI wird an den Verarbeitungsagenten gesendet.

  • post: Bei der HTTP-Methode "post" wird der Formulardatensatz in den Hauptteil des Formulars aufgenommen und an den Verarbeitungsagenten gesendet.

Die "get" -Methode sollte verwendet werden, wenn das Formular idempotent ist (dh keine Nebenwirkungen verursacht). Viele Datenbanksuchen haben keine sichtbaren Nebenwirkungen und eignen sich ideal für die "get" -Methode.

Roger Willcocks
quelle
5

Gemäß dem von Ihnen gewünschten W3C-Standard sollte der Standardwert GET sein.

Ghoppe
quelle
0

(ausführlichere Antwort, auch über Aktion und Enctype)

Die Standardmethode ',' Aktion 'und' Enctype 'eines HTML-Formulars
sind GET, die aktuelle URL application/x-www-form-urlencodedbzw. , wenn sie nicht angegeben sind .
(Das heißt, standardmäßig fordert ein Formular die aktuelle Seite mit den eingegebenen Parametern an.)

Dieses Verhalten hat sich nie geändert, außer 'Aktion' (in HTML 4 war es erforderlich). Zitate:

Methode: "Der fehlende Standardwert für das Methodenattribut ist ... der GET-Status."
Aktion:

Die Aktion eines Elements ist der Wert des Formatierungsattributs des Elements, wenn das Element eine Senden-Schaltfläche ist und über ein solches Attribut verfügt, oder der Wert des Aktionsattributs des Formularbesitzers, falls vorhanden, oder die leere Zeichenfolge. <...> Wenn action die leere Zeichenfolge ist, sei action die URL des Dokuments des Formulardokuments.

enctype: "Der fehlende Standardwert für das enctype-Attribut ist ... der application/x-www-form-urlencodedStatus."

Methode: "Mögliche Werte (ohne Berücksichtigung der Groß- und Kleinschreibung) sind 'get' (Standardeinstellung) und 'post'."
Aktion: Keine Standardeinstellung, DTD erfordert
Enctype: "Der Standardwert für dieses Attribut lautet 'application / x-www-form-urlencoded'."

<!ATTLIST FORM
  %attrs;                              -- %coreattrs, %i18n, %events --
  action      %URI;          #REQUIRED -- server-side form handler --
  method      (GET|POST)     GET       -- HTTP method used to submit the form--
  enctype     %ContentType;  "application/x-www-form-urlencoded"

Methode: "Es kann entweder GET oder POST sein und ist standardmäßig GET."
Aktion: Kein expliziter Satz, nur im DTD-
Enctype: "Standardmäßig wird application / x-www-form-urlencoded verwendet ."

<!ATTLIST FORM
        action %URL #IMPLIED  -- server-side form handler --
        method (%HTTP-Method) GET -- see HTTP specification --
        enctype %Content-Type; "application/x-www-form-urlencoded"

Methode: kein expliziter Satz, nur in der DTD-
Aktion: "Der Aktions-URI eines Formulars ist standardmäßig der Basis-URI des Dokuments
."

<!ATTLIST FORM
        ACTION CDATA #IMPLIED
        METHOD (%HTTP-Method) GET
        ENCTYPE %Content-Type; "application/x-www-form-urlencoded"
georgeawg
quelle