tags:

views:

117

answers:

5

When an html form is submitted without specifying a method, what is the default method used? GET or POST? Has this behavior ever changed between HTML standards?

Please cite a W3C standard document if possible.

A: 

This is dependent on the browser your using, in IE the default is get.

It is always best practice to specify a method.

Chris Jones
+2  A: 

Here is the W3C reference, which says GET is the default.

Jon Seigel
+3  A: 

It's GET.

Take a look here.

Excerpt:

<!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 --
  >
Drew Wills
A: 

According to The W3C standard you're asking for, the default should be GET.

ghoppe
Beaten by 27 seconds!
ghoppe
A: 

If not specified, the default is GET. I see no indication that this behaviour has ever been different. And it makes sense the GET is the default, as it specifies that method should be used for actions without side effects.

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

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

method = get|post [CI] This attribute specifies which HTTP method will be used to submit the form data set. Possible (case-insensitive) values are "get" (the default) and "post". See the section on form submission for usage information.

17.13.1 Form submission method The method attribute of the FORM element specifies the HTTP method used to send the form to the processing agent. This attribute may take two values:

get: With the HTTP "get" method, the form data set is appended to the URI specified by the action attribute (with a question-mark ("?") as separator) and this new URI is sent to the processing agent. post: With the HTTP "post" method, the form data set is included in the body of the form and sent to the processing agent. The "get" method should be used when the form is idempotent (i.e., causes no side-effects). Many database searches have no visible side-effects and make ideal applications for the "get" method.

Roger Willcocks