¿Cuál es el método predeterminado del formulario HTTP?

147

Cuando se envía un formulario HTML sin especificar un método, ¿cuál es el método HTTP predeterminado utilizado? Obtener o publicar?

¿Ha cambiado alguna vez este comportamiento entre los estándares HTML?

Cite un documento estándar del W3C si es posible.

David
fuente
1
Ya se ha respondido brillantemente aquí (con especificaciones W3C y todo): stackoverflow.com/questions/2225735/…
Pekka

Respuestas:

171

Es OBTENER.

Eche un vistazo W3C Recomendación 17.3 reemplazada El elemento FORM .

Extracto:

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

Buena lectura

Métodos GET y POST en formularios HTML: ¿cuál es la diferencia?

Drew Wills
fuente
15

Aquí está la referencia del W3C, que dice que GET es el valor predeterminado.

Jon Seigel
fuente
9

Si no se especifica, el valor predeterminado es GET. No veo indicios de que este comportamiento haya sido diferente. Y tiene sentido que GET sea el valor predeterminado, ya que especifica que el método debe usarse para acciones sin efectos secundarios.

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

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

method = get | post [CI]
Este atributo especifica qué método HTTP se usará para enviar el conjunto de datos del formulario. Los valores posibles (sin distinción entre mayúsculas y minúsculas) son " get" (el valor predeterminado) y " post". Consulte la sección sobre envío de formularios para obtener información sobre el uso.

17.13.1 Método de envío del formulario
El atributo de método del FORMelemento especifica el método HTTP utilizado para enviar el formulario al agente de procesamiento. Este atributo puede tomar dos valores:

  • get: con el método HTTP "get", el conjunto de datos del formulario se agrega al URI especificado por el atributo de acción (con un signo de interrogación ("?") como separador) y este nuevo URI se envía al agente de procesamiento.

  • post: con el método HTTP "post", el conjunto de datos del formulario se incluye en el cuerpo del formulario y se envía al agente de procesamiento.

El método "get" debe usarse cuando la forma es idempotente (es decir, no causa efectos secundarios). Muchas búsquedas en bases de datos no tienen efectos secundarios visibles y son aplicaciones ideales para el método "get".

Roger Willcocks
fuente
0

(respuesta más completa, también sobre acción y enctype)

El 'método', 'acción' y 'enctype' predeterminados de un formulario HTML, si no se especifican,
son GET, URL actual y application/x-www-form-urlencodedrespectivamente.
(Es decir, por defecto, un formulario solicita la página actual con los parámetros ingresados).

Este comportamiento nunca ha cambiado, excepto 'acción' (en HTML 4 se requería). Citas:

method: "El valor predeterminado que falta para el atributo del método es ... el estado GET".
acción:

La acción de un elemento es el valor del atributo de formación del elemento, si el elemento es un botón Enviar y tiene dicho atributo, o el valor del atributo de acción del propietario del formulario, si tiene uno, o la cadena vacía. <...> Si action es la cadena vacía, deje que action sea ​​la URL del documento del formulario.

enctype: "El valor predeterminado que falta para el atributo enctype es ... el application/x-www-form-urlencodedestado".

método: "Los valores posibles (sin distinción entre mayúsculas y minúsculas) son 'get' (el valor predeterminado) y 'post'".
action: no default, DTD lo requiere
enctype: "El valor predeterminado para este atributo es '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"

método: "Puede ser GET o POST, y el valor predeterminado es GET".
acción: sin oración explícita, solo en el tipo DTD
: "Por defecto es 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étodo: sin oración explícita, solo en la
acción DTD : "El URI de acción de un formulario predeterminado es el URI base del documento"
enctype: "La codificación predeterminada para todos los formularios es` application / x-www-form-urlencoded '".

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