Какой метод HTTP используется по умолчанию для формы? - PullRequest
128 голосов
/ 23 февраля 2010

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

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

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

Ответы [ 5 ]

158 голосов
/ 23 февраля 2010

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

Взгляните здесь .

Выдержка:

<!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 - в чем разница?

13 голосов
/ 23 февраля 2010

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

8 голосов
/ 23 февраля 2010

Если не указано, по умолчанию используется 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 Способ подачи формы
Атрибут method элемента FORM указывает метод HTTP используется для отправки формы обработчику. Этот атрибут может принимать два значения:

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

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

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

5 голосов
/ 23 февраля 2010

Согласно Требуемому стандарту W3C по умолчанию должно быть GET.

0 голосов
/ 20 июня 2018

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

Метод 'default', 'action' и 'enctype' формы HTML по умолчанию, если они не указаны,
GET, текущий URL и application/x-www-form-urlencoded соответственно.
(т.е. по умолчанию форма запрашивает текущую страницу с введенными параметрами.)
Это поведение никогда не менялось, кроме «действия» (в HTML 4 это требовалось). Цитирование:

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

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

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

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

method: «Это может быть либо GET, либо POST, по умолчанию GET.»
действие: нет явного предложения, только в 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
action: «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"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...