Quelle est la méthode HTTP par défaut du formulaire?

147

Lorsqu'un formulaire HTML est soumis sans spécifier de méthode, quelle est la méthode HTTP par défaut utilisée? OBTENIR ou POSTER?

Ce comportement a-t-il déjà changé entre les normes HTML?

Veuillez citer un document standard du W3C si possible.

David
la source
1
A déjà reçu une réponse brillante ici (avec les spécifications W3C et tout): stackoverflow.com/questions/2225735/…
Pekka

Réponses:

171

C'est GET.

Jetez un œil à la recommandation 17.3 remplacée par le W3C L'élément FORM .

Extrait:

<!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 --
  >

Bonne lecture

Méthodes GET et POST dans les formulaires HTML - quelle est la différence?

Drew Wills
la source
15

Voici la référence W3C, qui dit GET est la valeur par défaut.

Jon Seigel
la source
9

S'il n'est pas spécifié, la valeur par défaut est GET. Je ne vois aucune indication que ce comportement ait jamais été différent. Et il est logique que GET soit la valeur par défaut, car elle spécifie que la méthode doit être utilisée pour les actions sans effets secondaires.

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

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

method = get | post [CI]
Cet attribut spécifie la méthode HTTP qui sera utilisée pour soumettre l'ensemble de données du formulaire. Les valeurs possibles (insensibles à la casse) sont " get" (valeur par défaut) et " post". Voir la section sur la soumission de formulaire pour les informations d'utilisation.

17.13.1 Méthode de soumission de formulaire
L'attribut method de l' FORMélément spécifie la méthode HTTP utilisée pour envoyer le formulaire à l'agent de traitement. Cet attribut peut prendre deux valeurs:

  • get: Avec la méthode HTTP "get", l'ensemble de données du formulaire est ajouté à l'URI spécifié par l'attribut action (avec un point d'interrogation ("?") comme séparateur) et ce nouvel URI est envoyé à l'agent de traitement.

  • post: Avec la méthode HTTP "post", l'ensemble de données du formulaire est inclus dans le corps du formulaire et envoyé à l'agent de traitement.

La méthode "get" doit être utilisée lorsque le formulaire est idempotent (c'est-à-dire qu'il ne provoque aucun effet secondaire). De nombreuses recherches dans les bases de données n'ont pas d'effets secondaires visibles et constituent des applications idéales pour la méthode «get».

Roger Willcocks
la source
5

Selon la norme W3C que vous demandez, la valeur par défaut devrait être GET.

ghoppe
la source
0

(réponse plus complète, également sur l'action et l'enctype)

Les 'method', 'action' et 'enctype' par défaut d'un formulaire HTML, s'ils ne sont pas spécifiés,
sont respectivement GET, URL actuelle et application/x-www-form-urlencoded.
(C'est-à-dire, par défaut, un formulaire demande la page actuelle avec les paramètres saisis.)

Ce comportement n'a jamais changé, sauf «action» (en HTML 4, il était obligatoire). Citations:

method: "La valeur par défaut manquante pour l'attribut de méthode est ... l'état GET."
action:

L'action d'un élément est la valeur de l'attribut formaction de l'élément, si l'élément est un bouton Soumettre et possède un tel attribut, ou la valeur de l'attribut action de son propriétaire de formulaire, s'il en a un, ou bien la chaîne vide. <...> Si action est la chaîne vide, laissez action être l'URL du document du formulaire.

enctype: "La valeur par défaut manquante pour l'attribut enctype est ... l' application/x-www-form-urlencodedétat."

method: "Les valeurs possibles (insensibles à la casse) sont 'get' (valeur par défaut) et 'post'."
action: pas de valeur par défaut, DTD l'exige
enctype: "La valeur par défaut de cet attribut est '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"

method: "Cela peut être GET ou POST, et la valeur par défaut est GET."
action: pas de phrase explicite, uniquement dans le type de
code DTD : "Il vaut par défaut application / x-www-form-urlencoded ."

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

méthode: pas de phrase explicite, uniquement en
action DTD : "L'URI d'action d'un formulaire est par défaut l'URI de base du document"
enctype: "Le codage par défaut pour tous les formulaires est` application / x-www-form-urlencoded '. "

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