POST vs post, GET vs get

Я понимаю, что оба будут работать, но один правильнее другого?

<form method="POST" />

vs.

<form method="post" />

Зачем использовать то или иное?


person Explosion Pills    schedule 05.11.2010    source источник
comment
W3C называет эти атрибуты «перечисленными атрибутами» и рекомендует строчные буквы как для имени, так и для значения.   -  person amelvin    schedule 05.11.2010
comment
stackoverflow.com/a/45834938/498634 — более свежий ответ со ссылками на сегодняшние стандарты.   -  person Daniel Böhmer    schedule 30.01.2019


Ответы (6)


W3C некоторое время склонялся к строчным буквам для имен и значений атрибутов.

Например, раздел 4.11 стандарта xhtml 1.0 в 2002 году:

4.11. Атрибуты с предопределенными наборами значений

HTML 4 и XHTML имеют некоторые атрибуты, которые имеют предопределенные и ограниченные наборы значений (например, атрибут type элемента ввода). В SGML и XML они называются перечисляемыми атрибутами. В HTML 4 интерпретация этих значений не учитывала регистр, поэтому значение TEXT было эквивалентно значению text. В XML интерпретация этих значений чувствительна к регистру, а в XHTML 1 все эти значения определяются в нижнем регистре.

person amelvin    schedule 05.11.2010

Вы можете использовать любой из них почему, потому что HTML не учитывается -чувствительный язык разметки.

см. спецификацию HTML 4.01

Значение не чувствительно к регистру (т. е. пользовательские агенты интерпретируют «a» и «A» как одно и то же).


Обратите внимание, что XHTML должен быть строчным.

4.2. Имена элементов и атрибутов должны быть в нижнем регистре

Документы XHTML должны использовать нижний регистр для всех имен HTML-элементов и атрибутов. Это различие необходимо, потому что XML чувствителен к регистру, например. <li> и <LI> это разные теги.

person Sarfraz    schedule 05.11.2010
comment
Стоит отметить, что XHTML (обратите внимание на X) чувствителен к регистру — имена тегов и атрибутов должны быть строчными. Тем не менее, я не знаю об ограничениях по регистру для четко определенных атрибутов values. - person RobM; 05.11.2010
comment
Разве это не до doctype? потому что XML требует нижнего регистра. - person RobertPitt; 05.11.2010
comment
@RobM: Хорошо, что вы упомянули стандарт XHTML, хотя здесь я имел в виду спецификацию HTML 4.01: w3.org/TR/html4/interact/forms.html#adef-method. Обновите ответ, хотя :) - person Sarfraz; 05.11.2010
comment
@Sarfraz относительно вашего редактирования XHTML. В этой цитате говорится, что имена атрибутов должны быть в нижнем регистре, а не значения атрибутов. - person Alin Purcaru; 05.11.2010
comment
@Alin Purcaru: значения атрибутов также должны быть в нижнем регистре, если вы можете просматривать документы :) Under HTML 4, the interpretation of these values was case-insensitive, so a value of TEXT was equivalent to a value of text. Under XML, the interpretation of these values is case-sensitive, and in XHTML 1 all of these values are defined in lower-case. - person Sarfraz; 05.11.2010
comment
@Sarfraz Смотрите ответ Амельвина. Значения атрибутов (не имена!) должны быть в нижнем регистре только для предопределенных значений. Вы не можете сказать, что наличие id="MYID" не является допустимым XHTML. - person Alin Purcaru; 05.11.2010
comment
@Alin Purcaru: я думаю, это говорит о том же, в xhtml значения атрибутов должны быть строчными;) - person Sarfraz; 05.11.2010
comment
Нет, не должны. Обращать внимание. Я даже привел пример. Вы должны делать различие между именами атрибутов и значениями атрибутов. name="value". - person Alin Purcaru; 05.11.2010
comment
<img src="avatar.png" alt="Comment by David Dorward"> — Я бы не хотел, чтобы имена собственные писались в нижнем регистре! Слова эти значения важны, они ограничивают правило перечисленными атрибутами (в отличие от всех атрибутов). - person Quentin; 05.11.2010

Для HTML подходит любой вариант. Конкретной рекомендации нет.

Возможные (без учета регистра) значения: «получить» (по умолчанию) и «отправить».

Есть аргументы как для верхнего, так и для нижнего регистра. Можно сказать, что по умолчанию для токенов HTML (и обязательно для XHTML) они пишутся в нижнем регистре, но утверждение, что значения, используемые в HTTP-запросах, являются значениями в верхнем регистре, в равной степени допустимо.

person Alin Purcaru    schedule 05.11.2010

Любой в порядке. Это не чувствительно к регистру. w3schools подразумевает, что w3c рекомендует строчные буквы для HTML: http://www.w3schools.com/html/html_attributes.asp

Вот требование w3c XHTML к строчным буквам для атрибутов: http://www.w3.org/TR/xhtml1/#h-4.2

person kanaka    schedule 05.11.2010
comment
w3schools никоим образом не связаны с w3c! - person Alin Purcaru; 05.11.2010
comment
Эх. Я бы хотел, чтобы W3Schools удосужились сослаться на эту рекомендацию, потому что я нигде не могу ее найти. В общем, избегайте W3Schools. Они очень подвержены ошибкам. - person Quentin; 05.11.2010
comment
@Alin - обычно я бы кричал об этом, но на цитируемой странице говорится, что W3C дает эту рекомендацию (хотя не говорится, где они это делают). Однако ответ можно было бы лучше сформулировать, чтобы избежать последствий. - person Quentin; 05.11.2010
comment
Что ж, как вы можете видеть из ссылок, опубликованных в моем ответе и ответах других, w3c говорит, что оба варианта одинаково хороши, и если вы просмотрите главу о формах, вы увидите, что используются обе формы. - person Alin Purcaru; 05.11.2010
comment
Нет, ссылка, которую вы разместили, показывает, что W3Schools утверждает, что W3C говорит, что они оба одинаково находят. Поскольку W3Schools ненадежны, это не очень полезно. - person Quentin; 05.11.2010
comment
Но не забывайте, что реальный запрос должен быть отправлен с именем метода POST или GET, оно чувствительно к регистру. Прокси-серверы могут не разрешать использование имен методов в нижнем регистре. - person Illarion Kovalchuk; 05.11.2010

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

person DJ Quimby    schedule 05.11.2010
comment
Что, если я сделаю разметку таким образом, я выберу «смешанный случай» :) - person RobertPitt; 05.11.2010
comment
@RoBeRtPiTt: ТОГДА ЛУЧШЕ ПРОДОЛЖАТЬ ДЕЛАТЬ ЭТО ТАК! - person Onion-Knight; 05.11.2010

Из Рекомендации HTML 4.01:

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

XHTML отличается, и значения атрибутов там зависят от регистра и должны быть строчными.

В HTML 4 интерпретация этих значений не учитывала регистр, поэтому значение TEXT было эквивалентно значению text. В XML интерпретация этих значений чувствительна к регистру, а в XHTML 1 все эти значения определяются в нижнем регистре.

Приведенное выше взято из XHTML 1.0 (спасибо @amelvin за то, что заметил то, что я предполагалось, что это еще один случай незадокументированного изменения).

person Quentin    schedule 05.11.2010
comment
Спасибо за подсказку - знать, что эти значения атрибутов можно назвать «перечисляемыми атрибутами», было интересно (хотя ретроспективно очевидно). - person amelvin; 05.11.2010