Varsayılan form HTTP yöntemi nedir?


151

Bir yöntem belirtilmeden bir HTML formu gönderildiğinde, kullanılan varsayılan HTTP yöntemi nedir? GET veya POST?

Bu davranış HTML standartları arasında hiç değişti mi?

Mümkünse lütfen bir W3C standart belgesine atıfta bulunun.


1
Zaten burada (W3C özellikleriyle ve tümü ile) zekice yanıtlandı: stackoverflow.com/questions/2225735/…
Pekka

Yanıtlar:


175

GET.

Bir göz atın W3C'nin yerini alan Öneri 17.3 FORM öğesi .

Alıntı:

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

İyi okuma

HTML formlarında GET ve POST yöntemleri - fark nedir?



10

Belirtilmezse, varsayılan GET olur. Bu davranışın şimdiye kadar farklı olduğuna dair hiçbir gösterge görmüyorum. Ayrıca, yöntemin yan etkileri olmayan eylemler için kullanılması gerektiğini belirttiği için GET'in varsayılan olduğu mantıklıdır.

http://www.faqs.org/faqs/www/cgi-faq/section-37.html

Http://www.w3.org/TR/html401/interact/forms.html#h-17.3'ten alıntılar :

method = get | post [CI]
Bu öznitelik, form veri kümesini göndermek için hangi HTTP yönteminin kullanılacağını belirtir. Olası (büyük / küçük harfe duyarlı olmayan) değerler " get" (varsayılan) ve " post" dir. Kullanım bilgileri için form gönderme bölümüne bakın.

17.13.1 Form gönderme yöntemi Öğenin
yöntem özelliği FORM, formu işleme aracısına göndermek için kullanılan HTTP yöntemini belirtir. Bu özellik iki değer alabilir:

  • get: HTTP "get" yöntemiyle, form veri kümesi eylem özniteliği tarafından belirtilen URI'ye eklenir (ayırıcı olarak bir soru işareti ("?") ile) ve bu yeni URI işleme aracısına gönderilir.

  • post: HTTP "post" yöntemiyle, form veri seti formun gövdesine eklenir ve işleme aracısına gönderilir.

Form idempotent olduğunda (yani yan etkilere neden olmadığında) "get" yöntemi kullanılmalıdır. Çoğu veritabanı aramasının görünür yan etkisi yoktur ve "get" yöntemi için ideal uygulamaları oluşturur.



0

(daha kapsamlı yanıt, ayrıca eylem ve envanter hakkında)

Bir HTML formunun varsayılan 'yöntemi', 'eylemi' ve 'kod türü', belirtilmemişlerse
GET, mevcut URL ve application/x-www-form-urlencodedsırasıyla.
(Yani, varsayılan olarak bir form, girilen parametrelerle geçerli sayfayı ister.)

Bu davranış, 'eylem' dışında hiçbir zaman değişmedi (HTML 4'te gerekliydi). Alıntılar:

method: " Yöntem özniteliği için eksik değer varsayılanı ... GET durumudur."
aksiyon:

Bir öğenin eylemi, öğe bir Gönder Düğmesiyse ve böyle bir özniteliğe sahipse, öğenin biçimleme özniteliğinin değeridir veya varsa, form sahibinin eylem özniteliğinin değeridir veya boş dizedir. <...> Eylem boş dizeyse, eylem , form belgesinin belgenin URL'si olsun.

enctype: " Enctype özniteliği için eksik değer varsayılan ... application/x-www-form-urlencodeddurumdur."

method: "Olası (büyük / küçük harfe duyarlı olmayan) değerler 'get' (varsayılan) ve 'post'tur."
eylem: varsayılan yok, DTD enktype gerektirir
: "Bu öznitelik için varsayılan değer 'application / x-www-form-urlencoded'dir."

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

yöntem: "GET veya POST olabilir ve varsayılan olarak GET'dir."
eylem: açık bir cümle yok, yalnızca DTD
enctype içinde: "Varsayılan olarak 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"

yöntemi: Hiçbir açık cümle, sadece DTD içinde
eylem: "Belgenin temel tanım için bir form varsayılan eylem URI"
enctype: "Tüm formlar için varsayılan kodlama uygulama / x-www-form-urlencoded` dır."

<!ATTLIST FORM
        ACTION CDATA #IMPLIED
        METHOD (%HTTP-Method) GET
        ENCTYPE %Content-Type; "application/x-www-form-urlencoded"
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.