Qual è il metodo HTTP del modulo predefinito?


147

Quando viene inviato un modulo HTML senza specificare un metodo, qual è il metodo HTTP predefinito utilizzato? OTTIENI o POST?

Questo comportamento è mai cambiato tra gli standard HTML?

Se possibile, citare un documento standard W3C.


1
Ha già ricevuto una risposta brillante qui (con le specifiche W3C e tutte): stackoverflow.com/questions/2225735/…
Pekka,

Risposte:


171

È ottenere.

Dai un'occhiata W3C Sostituito Raccomandazione 17.3 L'elemento FORM .

Estratto:

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

Buona lettura

Metodi GET e POST in moduli HTML: qual è la differenza?



9

Se non specificato, il valore predefinito è GET. Non vedo alcuna indicazione che questo comportamento sia mai stato diverso. E ha senso che GET sia l'impostazione predefinita, in quanto specifica che il metodo dovrebbe essere usato per azioni senza effetti collaterali.

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

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

method = get | post [CI]
Questo attributo specifica quale metodo HTTP verrà utilizzato per inviare il set di dati del modulo. I valori possibili (senza distinzione tra maiuscole e minuscole) sono " get" (impostazione predefinita) e " post". Vedere la sezione sull'invio del modulo per informazioni sull'utilizzo.

17.13.1 Metodo di invio modulo
L'attributo metodo FORMdell'elemento specifica il metodo HTTP utilizzato per inviare il modulo all'agente di elaborazione. Questo attributo può assumere due valori:

  • get: con il metodo HTTP "get", il set di dati del modulo viene aggiunto all'URI specificato dall'attributo action (con un punto interrogativo ("?") come separatore) e questo nuovo URI viene inviato all'agente di elaborazione.

  • post: con il metodo "post" HTTP, il set di dati del modulo è incluso nel corpo del modulo e inviato all'agente di elaborazione.

Il metodo "get" deve essere utilizzato quando il modulo è idempotente (ovvero non causa effetti collaterali). Molte ricerche nel database non hanno effetti collaterali visibili e rendono le applicazioni ideali per il metodo "get".



0

(risposta più completa, anche su azione ed enctype)

Il 'metodo' predefinito, 'azione' e 'enctype' di un modulo HTML, se non sono specificati,
sono GET, URL corrente e application/x-www-form-urlencodedrispettivamente.
(Cioè, per impostazione predefinita, un modulo richiede la pagina corrente con i parametri immessi.)

Questo comportamento non è mai cambiato, tranne 'action' (in HTML 4 era richiesto). citazioni:

method: "Il valore mancante predefinito per l'attributo method è ... lo stato GET."
azione:

L'azione di un elemento è il valore dell'attributo formaction dell'elemento, se l'elemento è un pulsante Invia e ha un tale attributo, oppure il valore dell'attributo action del proprietario del modulo, se ne ha uno, oppure la stringa vuota. <...> Se action è la stringa vuota, lascia che action sia l'URL del documento del documento del modulo.

enctype: "Il valore mancante predefinito per l'attributo enctype è ... lo application/x-www-form-urlencodedstato."

metodo: "I valori possibili (senza distinzione tra maiuscole e minuscole) sono 'get' (impostazione predefinita) e 'post'."
azione: nessun valore predefinito, DTD lo richiede
enctype: "Il valore predefinito per questo attributo è '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"

metodo: "Può essere GET o POST e il valore predefinito è GET."
azione: nessuna frase esplicita, solo
nell'enctype DTD : "L'impostazione predefinita è 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"

metodo: nessuna frase esplicita, solo
nell'azione DTD : "L'URI dell'azione di un modulo viene
impostato automaticamente sull'URI di base del documento" enctype: "La codifica predefinita per tutti i moduli è` application / x-www-form-urlencoded '. "

<!ATTLIST FORM
        ACTION CDATA #IMPLIED
        METHOD (%HTTP-Method) GET
        ENCTYPE %Content-Type; "application/x-www-form-urlencoded"
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.