HTML <form> method özniteliği

Tanım ve kullanım

method Özellikler form verilerinin nasıl gönderileceğini belirler(form verileri action öznitelikle belirlenen sayfaya gönderilir)

Form verileri URL değişkenleri olarak (method="get" kullanılarak) veya HTTP POST işlemleri olarak (method="post" kullanılarak) gönderilebilir.

GET hakkında açıklama:

  • Form verilerini URL'ye ad/değer çifti olarak ekleyin
  • URL uzunluk sınırlaması vardır(yaklaşık 3000 karakter)
  • Duyarlı verileri GET ile göndermeyin! (URL'de görünecek)
  • Kullanıcıların sonuçları书签 olarak eklemek istediği formlar için çok faydalı
  • GET, güvenli olmayan veriler için daha uygundur, örneğin Google'daki sorgu dizileri.

POST hakkında açıklama:

  • HTTP istemi metninde form verilerini ekleyin (veriler URL'de görüntülenmez).
  • Boylutluk sınırlaması yoktur.
  • POST ile gönderilen formlar, yer imlerine eklenemez.

Örnek

Örnek 1

Formu "get" yöntemi ile gönderin:

<form action="/action_page.php" method="get">
  <label for="fname">İsim:</label>
  <input type="text" id="fname" name="fname"><br><br>
  <label for="lname">Soyadı:</label>
  <input type="text" id="lname" name="lname"><br><br>
  <input type="submit" value="Gönder">
</form>

Kişisel olarak deneyin

Örnek 2

Formu "post" yöntemi ile gönderin:

<form action="/action_page.php" method="post">
  <label for="fname">İsim:</label>
  <input type="text" id="fname" name="fname"><br><br>
  <label for="lname">Soyadı:</label>
  <input type="text" id="lname" name="lname"><br><br>
  <input type="submit" value="Gönder">
</form>

Kişisel olarak deneyin

Gramer

<form method="get|post">

Özellik Değeri

Değer Açıklama
get Varsayılan. Form verilerini URL'ye ad/değer çifti olarak ekleyin: URL?name=value&name=value.
post Form verilerini HTTP POST işleminde gönderin.

method Özelliği Açıklaması

Tarayıcı, formdaki verileri sunucuya işleme göndermek için method özelliği ile belirtilen yöntemi kullanır. İki yöntem vardır: POST yöntemi ve GET yöntemi.

POST yöntemini kullanıldığında, tarayıcı verileri aşağıdaki iki adımda gönderir. İlk olarak, tarayıcı, action özelliğinde belirtilen form işleme sunucusu ile bağlantı kurar ve bağlantı kurulduktan sonra, tarayıcı verileri sunucuya segmentli iletişim yöntemi ile gönderir.

Sunucu tarafında, POST tarzı uygulaması başladığında, bir işaret konumundan parametreleri okumalıdır ve parametreler okunduktan sonra, bu form değerlerini kullanabilir öncesi bu parametrelerin çözümlenmesi gerekmektedir. Kullanıcıya özel sunucu, uygulamanın bu parametreleri nasıl kabul etmesi gerektiğini açıkça belirtir.

Bir diğer durum, GET yöntemini kullanmaktır, bu durumda tarayıcı, form işleme sunucusu ile bağlantı kurar ve ardından tüm form verilerini bir iletişim adımında gönderir: Tarayıcı, verileri formun action URL'sinin ardından doğrudan ekler. Bu iki arasında soru işareti ile ayrılır.

Genel olarak, tarayıcılar yukarıdaki herhangi bir yöntemle form bilgilerini iletebilir, ancak bazı sunucular yalnızca belirli bir yöntem tarafından sağlanan verileri kabul eder. <form> etiketinin method (yöntem) özelliğinde, form işleme sunucusunun verileri nasıl işleyeceğine dair yöntemi belirtebilirsiniz, bu da POST veya GET olacaktır.

POST mu GET?

Form işleme sunucusu hem POST hem de GET yöntemini destekliyorsa, hangi yöntemi seçmelisiniz? Aşağıda bu konuda bazı kurallar bulunmaktadır:

  • En iyi form iletim performansını elde etmek istiyorsanız, az sayıda kısa alan içeren küçük formları GET yöntemiyle göndermeyi tercih edebilirsiniz.
  • Bazı sunucu işletim sistemleri, uygulamalara hemen iletilmesi gereken komut satırı parametrelerinin sayısını ve uzunluğunu sınırlar. Bu durumda, çok sayıda alan veya uzun metin alanlarına sahip formların gönderilmesi için POST yöntemini kullanmalısınız.
  • Sunucu tarafındaki form işleme uygulaması yazma konusunda yeterince deneyiminiz yoksa, GET yöntemini seçmelisiniz. POST yöntemini kullanırsanız, okuma ve kodlama işlemlerinde ekstra iş yapmanız gerekebilir, bu da belki de çok zor olmasa da, bu sorunları ele almak istemeyebileceğiniz anlamına gelebilir.
  • Güvenlik bir sorun ise, POST yöntemini kullanmanızı tavsiye ederiz. GET yöntemi, form parametrelerini doğrudan uygulamanın URL'sine yerleştirir, bu nedenle ağ taramacıları bunları kolayca yakalayabilir ve sunucunun günlük dosyalarından çıkarabilirler. Parametreler arasında kredi kartı hesap numarası gibi duyarlı bilgiler varsa, kullanıcı güvenliğini bilinçsizce tehlikeye atabilir. POST uygulamalarıysa, parametreleri sunucuya ayrı bir işlem olarak iletmek için en azından şifreleme yöntemlerini kullanabilir.
  • Form dışında sunucu uygulamasını çağırmak ve ona parametreler göndermek istiyorsanız, GET yöntemini kullanmanız gerekir, çünkü bu yöntem, form gibi parametreleri URL'nin bir parçası olarak dahil etmeyi sağlar. Diğer yandan, POST tarzı uygulamalar, URL'nin sonuna eklenen ek bir iletim süreci arzu eder ve bu içerik, geleneksel <a> etiketi içerik olarak kullanılmamalıdır.

Parametreleri açıkça iletmek

Bu öneriler, bu yöntemi seçmenin belirli bir açıklaması olarak da kullanılabilir. Örneğin, sadece x ve y parametrelerine sahip çok basit bir formunuz varsa, bu elementlerin değerlerini kodlamak için aşağıdaki gibi bir formda bulunabilirsiniz:

x=28&y=66

Form, method=GET kullandığında, sunucu uygulamasını referans alacak URL aşağıdaki gibi görünecektir:

http://www.example.com/example/program?x=28&y=66

Her zaman geleneksel bir <a> etiketi oluşturabiliriz ve bu etiketi, gerekli parametre değerlerini içeren bir formu çağırırken kullanabiliriz, aşağıdaki gibi görünüyor:

<a href="http://www.example.com/example/program?x=28&y=66">

Tek sorun, parametreleri ayıran & işareti, karakter eşdeğerindeki girdi işaretidir. <a> etiketinin href özelliğine & işareti yerleştirildiğinde, tarayıcı işaretin arkasındaki karakterleri ilgili karakter eşdeğerine dönüştürecektir.

Bu tür bir durumun önüne geçmek için, & işaretinin karakter eşdeğerini kullanarak değiştirmemiz gerekiyor, yani "&" veya "&" kullanarak değiştirmeliyiz. Değiştirdikten sonra, yukarıdaki form dışı sunucu uygulaması örneği şu şekilde görünecektir:

<a href="http://www.example.com/example/program?x=28&y=66">

Bu şekilde URL'de & işareti hala kullanılamıyor ve gelecekte karışıklığa neden olabileceği için, sunucuların sonunda bu işareti noktalı virgül olarak kabul etmelerini teşvik ediyoruz. Ayrıca, sunucunuzun bu özelliği destekleyip desteklemediğini öğrenmek için sunucunuzun belgelerini de kontrol edebilirsiniz.

Tarayıcı Desteği

Chrome Edge Firefox Safari Opera
Chrome Edge Firefox Safari Opera
Destek Destek Destek Destek Destek