Ajax'ta GET ve POST ne zaman kullanılır?

Kullandığınızda ajax (Asenkron JavaScript ve XML) web sayfasını yeniden yüklemeden sunucuya erişmek için, isteğin bilgilerinin sunucuya nasıl iletileceği konusunda iki seçeneğiniz vardır: GET veya POST.

Bunlar, yeni bir sayfa yüklemek için istekleri sunucuya iletirken sahip olduğunuz iki seçenekle aynıdır, ancak iki fark vardır. Birincisi, bir web sayfasının tamamı yerine yalnızca küçük bir bilgi istemenizdir. İkinci ve en dikkat çekici fark, Ajax isteği adres çubuğunda görünmediğinden, istekte bulunulduğunda ziyaretçileriniz bir fark fark etmeyecektir.

GET kullanılarak yapılan aramalar, alanları ve değerlerini POST kullanmanın, arama Ajax'tan yapıldığında da göstermediği herhangi bir yerde göstermez.

Ne Yapmamalısınız

Peki, bu iki alternatiften hangisinin kullanılması gerektiğine nasıl karar vermeliyiz?

Bazı yeni başlayanların yapabileceği bir hata, çağrılarının çoğu için GET'i kullanmaktır, çünkü ikisinin kodlaması daha kolaydır. Ajax'ta GET ve POST çağrıları arasındaki en belirgin fark, GET çağrılarının, yeni bir sayfa yüklemesi talep ederken iletilebilecek veri miktarı konusunda hala aynı limite sahip olmasıdır.

instagram viewer

Tek fark, bir Ajax isteğiyle yalnızca az miktarda veri işlediğiniz için (veya en azından bu şekilde kullanmanız gerekiyorsa), tam bir web yüklemede olduğu gibi Ajax içinden bu uzunluk sınırına girme olasılığınız daha düşüktür sayfa. Yeni başlayanlar, GET yönteminin izin verdiği daha fazla bilgi iletmeleri gereken birkaç örnek için POST isteklerini kullanarak ayırtabilir.

Bu şekilde iletilecek çok fazla veriye sahip olduğunuzda en iyi çözüm, aynı anda birkaç bilgi parçasını ileten birden fazla Ajax çağrısı yapmaktır. Tek bir Ajax çağrısında büyük miktarda veri iletecekseniz, sadece yeniden yüklemede daha iyi olursunuz büyük miktarda veri olduğunda işlem süresinde önemli bir fark olmayacağından tüm sayfa içeriyordu.

Öyleyse, iletilecek veri miktarı GET ve POST arasında seçim yapmak için iyi bir neden değilse, karar vermek için ne kullanmalıyız?

Bu iki yöntem aslında tamamen farklı amaçlar için oluşturuldu ve nasıl çalıştıkları arasındaki farktan dolayı kısmen nasıl çalıştıkları arasındaki farklar. Bu sadece Ajax'tan GET ve POST kullanımı için değil, aynı zamanda bu yöntemlerin kullanılabileceği her yerde geçerlidir.

GET ve POST'un Amacı

GET, adından da anlaşılacağı gibi kullanılır: almak bilgi. bilgi okurken kullanılmak üzere tasarlanmıştır. Tarayıcılar sonucu bir GET isteğinden önbelleğe alır ve aynı GET isteği tekrar yapılırsa, tüm isteği yeniden çalıştırmak yerine önbelleğe alınan sonucu görüntüler.

Bu, tarayıcı işlemede bir kusur değildir; GET çağrılarını daha verimli hale getirmek için bu şekilde çalışmak üzere tasarlanmıştır. Bir GET çağrısı sadece bilgi almaktır; sunucudaki herhangi bir bilginin değiştirilmesi anlamına gelmez, bu nedenle verileri tekrar istemenin aynı sonuçları döndürmesi gerekir.

POST yöntemi gönderme veya sunucudaki bilgilerin güncellenmesi. Bu tür bir çağrının verileri değiştirmesi beklenir, bu nedenle iki özdeş POST çağrısından döndürülen sonuçlar birbirinden tamamen farklı olabilir. İkinci POST çağrısından önceki ilk değerler, ilk çağrının önceki değerlerden farklı olacaktır çünkü ilk çağrı bu değerlerin en azından bir kısmını güncelleyecektir. Bu nedenle, bir POST çağrısı, önceki yanıtın önbelleğe alınmış bir kopyasını saklamak yerine her zaman yanıtı sunucudan alır.

GET veya POST Nasıl Seçilir

Ajax çağrınızda geçirdiğiniz veri miktarına göre GET ve POST arasında seçim yapmak yerine, Ajax çağrısının gerçekte ne yaptığını seçmelisiniz.

Çağrı sunucudan veri almaksa, GET'i kullanın. Alınacak değerin, güncellenen diğer işlemlerin bir sonucu olarak zaman içinde değişmesi bekleniyorsa, GET çağrınızda geçirdiğiniz şey, böylece sonraki çağrılar artık sonucun daha önce önbelleğe alınmış bir kopyasını kullanmaz doğru.

Aramanız sunucuya hiç veri yazacaksa POST'u kullanın.

Aslında, bu kriteri sadece Ajax çağrılarınız için GET ve POST arasında seçim yapmak için değil, aynı zamanda web sayfanızdaki formları işlemek için hangisinin kullanılacağını seçmek için de kullanmalısınız.