GET ve POST Arasındaki Fark Nedir? Ne Zaman Hangisi Kullanılmalıdır?

4 2018 Aralık

Kategori: HTML
4 Aralık 2018 tarihinde yazıldı.

Masaüstü programlamadan farklı olarak web programlamada sayfalar arasında veri iletimi yapılır. Yani web uygulamaları istek/cevap (request/response) mantığı ile çalışır. Web’te Get, Post, Put, Trace, Delete, Head ve Options olmak üzere 7 adet istek (request) tipi vardır. Bunlardan ençok kullanılan ve bilinenleri şüphesiz Get ve Post metodlarıdır. Zaten Get ve Post metodları dışındaki diğer metodların kullanım alanları çok çok dardır yani nadiren kullanılır.

Get methodu kullanıldığında istekler adres satırında görüntülenir. Gönderilen bilgiler adres çubuğunda görüntülendiği için güvenliği düşük bir yöntemdir ancak daha hızlıdır. Web’te varsayılan yöntemdir.

https://www.habipoguz.com.tr/istek_dosyasi.php?ad=habip&soyad=oguz&ders=php&konu=siniflar

Post metodu ise adres satırında görüntülenmesi istenmeyen istekler gönderildiğinde kullanılır. İstek yapılırken gönderilen parametreler tarayıcının desteklemediği formatta olmayabilir. Gönderilen bilgiler adres satırında görünmediği için daha güvenlidir ancak Get methoduna göre daha yavaştır.

Get metodu sunucudan veri çekmek için tasarlanmış bir metodtur. Post (ve daha az bilinen arkadaşları olan Put ve Delete) ise sunucudaki veriyi düzenlemek için tasarlanmıştır. Get metodu sunucudaki veriyi düzenlemek/silmek için kullanılmamalıdır. Örneğin eğer bir veriyi silmek için Get yöntemi kullanan bir bağlantı (link) kullanırsanız, Google bot sitenizi tararken “silme linki”ne bol bol tıklayarak tüm verilerinizi rahatlıkla silebilir.

Ajax çağrılarında ise sunucunuzun desteğine göre Get ya da Post metodunu kullanabilirsiniz. Ancak bu halde dahi Get metodunu veri çekerken, Post metodunu ise verileri güncellerken ya da silerken kullanmak hem programlamada bir standarda kavuşmanızı sağlar hem ajax dosyalarına adres satırından doğrudan istek yapıldığında ekleme/güncelleme/silme işlemlerinde daha iyi güvenlik sağlar.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir