POST ile GET arasındaki fark jQuery ile ilgili değil HTTP ile ilgilidir.
Bildiğiniz gibi web uygulamaları request – response denilen istek – cevap mantığı ile çalışırlar. HTTP yedi adet request yani istek tipi tanımlar.
1- GET
2- POST
3- PUT
4- TRACE
5- DELETE
6- HEAD
7- OPTIONS
Metodlar arasında bazı farklar vardır ve kullanım yerleri farklılık gösterir. Tarayıcılar nadiren GET ve POST yöntemleri dışındaki diğer HTTP yöntemleri ile ilgilenir. Örneğin dosya yüklemede (file upload) kullanılan PUT yöntemi yerine MIME veri tipleri ile POST yöntemi ile aynı iş yapılabilir. Çoğu web uygulaması sadece GET ve POST yöntemlerini kullanır.
HTTP’de sunucuya gidebilecek çeşitli istek türleri/metotları bulunur. Bunlar GET, POST, HEAD, DELETE (…) gibi türlerdir.
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.
http://www.cemelma.wordpress.com/index?ad=cem
Post metodu ise adres satırında görüntülenmesi istenmeyen istekler gönderildiğinde kullanılır. 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. Yani POST durumunda form alanları HTTP REQUEST HEADER içinde kodlanmış olarak gider, adres satırında çıkmaz. Post işleminde her türlü dosyayı post edebiliriz xml,image, file post edebiliriz.
Get metodu sunucudan veri çekmek için tasarlanmış bir metodtur. Post,Put,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.
GET isteğinde belirli bir karakter sayısı sınırı varken (512) POST isteğinde böyle bir sınır yoktur. Örneğin formda bir textarea/ varsa POST kullanmak gerekir, aksi taktirde textarea/ içine yazılan metnin bir kısmı gitmeyebilir.
//Post methodu bu şekilde kullanılabilir
$.post(“@Url.Action(“action”, “controller”)”,{ id: id }, function (data) {
});