Когда HTML-форма отправлена, не указывая метод, что используется метод HTTP по умолчанию? ДОБРАТЬСЯ или POST?
Это поведение когда-либо изменялось между стандартами HTML?
Процитируйте документ стандарта W3C, если это возможно.
Это GET.
Взгляните Рекомендация 17.3, замененная W3C Элемент 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 --
>
Хорошее чтение
Это очень распространенная практика. В C . Я стараюсь думать об этом так, будто вы хотите лгать себе в путь «Я не использую goto
». Размышляя об этом, не было бы ничего плохого в goto
, используемом аналогично. Фактически это также снизит уровень отступа.
Это сказал, хотя, я заметил, очень часто это делать.. в то время как
петли, как правило, растут. И затем они получают , если
s и else
s внутри, делая код на самом деле не очень читаемым, не говоря уже о тестируемом.
Эти делают.., в то время как
обычно предназначены для очистки . Всеми возможными способами я бы предпочел использовать RAI и вернуть ранний из короткой функции. С другой стороны, C не предоставляет вам столько удобств, сколько C++ , делая делать.. в то время как
один из лучших подходов для очистки.
Канонический подход заключается в использовании Callable
и ExecutingService
. отправка
в Callable
службе ExecisingService
возвращает (typesafe) Future
, из которого можно получить
результат.
class TaskAsCallable implements Callable<Result> {
@Override
public Result call() {
return a new Result() // this is where the work is done.
}
}
ExecutorService executor = Executors.newFixedThreadPool(300);
Future<Result> task = executor.submit(new TaskAsCallable());
Result result = task.get(); // this blocks until result is ready
В вашем случае вы, вероятно, хотите использовать invokeAll
, который возвращает Список
из Фьючерсов
, или создать этот список самостоятельно при добавлении задач исполнителю. Чтобы собрать результаты, просто вызовите get
для каждого.
Здесь - ссылка на W3C, которая говорит, что GET является значением по умолчанию.
Если не указано, по умолчанию используется 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.
Согласно стандарту W3C , который вы запрашиваете, по умолчанию должен быть GET.