Quando um formulário HTML é enviado sem especificar um método, qual é o método HTTP padrão usado? GET ou POST?
Esse comportamento já mudou entre os padrões HTML?
Por favor, cite um documento padrão do W3C, se possível.
Quando um formulário HTML é enviado sem especificar um método, qual é o método HTTP padrão usado? GET ou POST?
Esse comportamento já mudou entre os padrões HTML?
Por favor, cite um documento padrão do W3C, se possível.
Respostas:
É GET.
Dê uma olhada W3C Superceded Recomendação 17.3 O elemento FORM .
Excerto:
<!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 --
>
Boa leitura
Métodos GET e POST em formulários HTML - qual é a diferença?
Aqui está a referência do W3C, que diz que GET é o padrão.
Se não especificado, o padrão é GET. Não vejo indicação de que esse comportamento tenha sido diferente. E faz sentido que GET seja o padrão, pois especifica que o método deve ser usado para ações sem efeitos colaterais.
http://www.faqs.org/faqs/www/cgi-faq/section-37.html
Citações de http://www.w3.org/TR/html401/interact/forms.html#h-17.3 :
method = get | post [CI]
Este atributo especifica qual método HTTP será usado para enviar o conjunto de dados do formulário. Os valores possíveis (sem distinção entre maiúsculas e minúsculas) são "get
" (o padrão) e "post
". Consulte a seção sobre envio de formulários para obter informações de uso.17.13.1 Método de envio de formulário
O atributo method doFORM
elemento especifica o método HTTP usado para enviar o formulário ao agente de processamento. Este atributo pode assumir dois valores:
get: com o método HTTP "get", o conjunto de dados do formulário é anexado ao URI especificado pelo atributo action (com um ponto de interrogação ("?") como separador)) e esse novo URI é enviado ao agente de processamento.
post: com o método HTTP "post", o conjunto de dados do formulário é incluído no corpo do formulário e enviado ao agente de processamento.
O método "get" deve ser usado quando o formulário é idempotente (ou seja, não causa efeitos colaterais). Muitas pesquisas de banco de dados não têm efeitos colaterais visíveis e fazem aplicativos ideais para o método "get".
De acordo com o padrão W3C que você está solicitando, o padrão deve ser GET.
(resposta completa, também sobre ação e codificação)
O 'método' padrão, 'ação' e 'enctype' de um formulário HTML, se não forem especificados,
são GET, URL atual e application/x-www-form-urlencoded
respectivamente.
(Ou seja, por padrão, um formulário solicita a página atual com os parâmetros inseridos.)
Esse comportamento nunca mudou, exceto 'action' (no HTML 4, era necessário). Citações:
method: "O valor padrão ausente para o atributo method é ... o estado GET."
açao:
A ação de um elemento é o valor do atributo de formação do elemento, se o elemento for um Botão Enviar e tiver esse atributo, ou o valor do atributo de ação do proprietário do formulário, se houver, ou a sequência vazia. <...> Se a ação for a sequência vazia, deixe a ação ser a URL do documento do formulário.
enctype: "O valor padrão ausente para o atributo enctype é ... o application/x-www-form-urlencoded
estado."
método: "Os valores possíveis (sem distinção entre maiúsculas e minúsculas) são 'get' (o padrão) e 'post'."
ação: sem padrão, o DTD exige o
enctype: "O valor padrão para este atributo é '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"
método: "Pode ser GET ou POST, e o padrão é GET."
ação: nenhuma sentença explícita, apenas no
enctype DTD : "O padrão é 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"
método: nenhuma sentença explícita, apenas na
ação DTD : "O URI da ação é padronizado com o URI base do documento"
enctype: "A codificação padrão para todos os formulários é` application / x-www-form-urlencoded '. "
<!ATTLIST FORM
ACTION CDATA #IMPLIED
METHOD (%HTTP-Method) GET
ENCTYPE %Content-Type; "application/x-www-form-urlencoded"