Какой метод HTTP используется по умолчанию для формы?

147

Когда форма HTML отправляется без указания метода, какой метод HTTP используется по умолчанию? ПОЛУЧИТЬ или ПОСТ?

Изменилось ли когда-либо это поведение между стандартами HTML?

Пожалуйста, приведите стандартный документ W3C, если это возможно.

Дэвид
источник
1
Здесь уже блестяще ответили (со спецификацией W3C и другими): stackoverflow.com/questions/2225735/…
Pekka

Ответы:

171

Это ПОЛУЧИТЬ.

Взгляните, W3C Superceded Рекомендация 17.3 Элемент FORM .

Выдержка:

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

Хорошо читать

Методы GET и POST в HTML-формах - какая разница?

Дрю Уиллс
источник
15

Вот ссылка на W3C, в которой говорится, что GET используется по умолчанию.

Джон Зигель
источник
9

Если не указано, по умолчанию используется GET. Я не вижу признаков того, что это поведение когда-либо было другим. И имеет смысл, что GET является значением по умолчанию, поскольку он указывает, что метод должен использоваться для действий без побочных эффектов.

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]
Этот атрибут указывает, какой метод HTTP будет использоваться для отправки набора данных формы. Возможные (без учета регистра) значения: « get» (по умолчанию) и « post». См. Раздел по отправке формы для получения информации об использовании.

Способ подачи 17.13.1 Формы
Атрибут метода FORMэлемента определяет метод HTTP , используемый для отправки формы в агент обработки. Этот атрибут может принимать два значения:

  • get: с помощью HTTP-метода «get» набор данных формы добавляется к URI, указанному атрибутом действия (со знаком вопроса («?») в качестве разделителя), и этот новый URI отправляется агенту обработки.

  • post: с помощью HTTP-метода «post» набор данных формы включается в тело формы и отправляется агенту обработки.

Метод «get» следует использовать, когда форма идемпотентна (то есть не вызывает побочных эффектов). Многие поиски в базе данных не имеют видимых побочных эффектов и делают идеальные приложения для метода «get».

Роджер Уиллкокс
источник
0

(более полный ответ, также о действии и энтипе)

По умолчанию «method», «action» и «enctype» формы HTML, если они не указаны,
- это GET, текущий URL и, application/x-www-form-urlencodedсоответственно.
(Т.е. по умолчанию форма запрашивает текущую страницу с введенными параметрами.)

Это поведение никогда не менялось, кроме «действия» (в HTML 4 это требовалось). Цитирование:

  • 5 и последующие, W3C TR

method: « Отсутствующее значение по умолчанию для атрибута метода - это… состояние GET».
действие:

Действие элемента - это значение атрибута formaction элемента, если элемент является кнопкой Submit и имеет такой атрибут, или значение атрибута действия его владельца формы, если он есть, или пустая строка. <...> Если action - пустая строка, пусть action будет URL-адресом документа формы.

enctype: « Отсутствующее значение по умолчанию для атрибута enctype - это application/x-www-form-urlencodedсостояние.»

Метод: «Возможные (без учета регистра) значения:« get »(по умолчанию) и« post ».»
action: нет по умолчанию, DTD требует его
enctype: «Значением по умолчанию для этого атрибута является« 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"

Метод: «Это может быть либо GET или POST, и по умолчанию GET».
action: нет явного предложения, только в DTD
enctype: «По умолчанию применяется 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"

метод: нет явного предложения, только в
действии DTD : «URI действия формы по умолчанию - базовый URI документа»
enctype: «Кодировка по умолчанию для всех форм - application / x-www-form-urlencoded».

<!ATTLIST FORM
        ACTION CDATA #IMPLIED
        METHOD (%HTTP-Method) GET
        ENCTYPE %Content-Type; "application/x-www-form-urlencoded"
georgeawg
источник