PUT vs POST: Fark Nedir?

İçindekiler:

Anonim

PUT nedir?

Sunucudaki mevcut kaynağı güncellemek için PUT yöntemi kullanılır. Tipik olarak, hedef URL'de bulunan her şeyi başka bir şeyle değiştirir. Yeni bir kaynak oluşturmak veya mevcut olanın üzerine yazmak için kullanabilirsiniz. PUT, kapalı varlığın sağlanan istenen URI (Tekdüzen Kaynak Tanımlayıcısı) altında depolanması gerektiğini talep eder.

Bu eğitimde şunları öğreneceksiniz:

  • PUT nedir?
  • POST nedir?
  • PUT örneği
  • POST Örneği
  • PUT ve POST arasındaki fark
  • PUT istekleriyle bir API'yi test etme
  • POST istekleriyle bir API'yi test etme
  • PUT Yönteminin Avantajları
  • POST Yönteminin Avantajları

POST nedir?

POST, HTTP tarafından desteklenen bir yöntemdir ve

bir web sunucusunun, istenen mesajın gövdesinde bulunan verileri kabul ettiğini gösterir. POST genellikle World Wide Web tarafından kullanıcı tarafından oluşturulan verileri web sunucusuna göndermek veya siz dosya yüklediğinizde kullanılır.

ANAHTAR FARKLAR:

  • PUT yöntemi, tek bir kaynağı değiştirmeniz gerektiğinde çağrılırken, bir alt kaynak eklemeniz gerektiğinde POST yöntemi çağrılır.
  • PUT yöntemi yanıtı önbelleğe alınabilir ancak PUT yöntemi yanıtlarını önbelleğe alamazsınız.
  • PUT'ta UPDATE sorgusunu kullanabilirken, POST'ta sorgu oluşturmayı kullanabilirsiniz.
  • PUT yönteminde, istemci hangi URI kaynağına sahip olması gerektiğine karar verir ve POST yönteminde, sunucu hangi URI kaynağına sahip olması gerektiğine karar verir.
  • POST soyut olarak çalışırken PUT özel olarak çalışır.
  • Aynı PUT isteğini birden çok kez gönderirseniz, sonuç aynı kalır ancak aynı POST isteğini birden çok kez gönderirseniz farklı sonuçlar alırsınız.
  • PUT yöntemi idempotent iken POST yöntemi idempotent değildir.

PUT örneği

PUT yönteminin web sunucusu örneği:

HTTP PUT http://www.google.com/users/234

HTTP PUT http://www.google.com/users/234/accounts/567

İstek

PUT /new.html HTTP/1.1Host: example.comContent-type: text/htmlContent-length: 20

New File

Tepkiler

Geçerli temsile sahip hedef kaynak, ekteki temsilin durumuyla değiştirilirse, sunucu iki yanıt göndermelidir. İlk yanıt kodu 200 (Tamam) ve ikinci yanıt kodu 204'tür (İçerik Yok).

Hedef kaynağın herhangi bir temsili yoksa, sunucu bir 201 kod (Oluşturuldu) yanıtı göndererek kullanıcıyı bilgilendirmelidir.

 HTTP/1.1 201 CreatedContent-Location: /new.html

POST Örneği

POST yöntemine bir örnek:

HTTP YAYINI http://www.google.com/users

HTTP YAYINI http://www.google.com/users/234/accounts

Varsayılan uygulama / x-www-form-urlencoded içerik türünü kullanan bir form:

POST /test HTTP/1.1Host: abc.exampleContent-Type: application/x-www-form-urlencodedContent-Length: 40field1=value1&field2=value2

PUT ve POST arasındaki fark

PUT ve POST yöntemi arasındaki önemli fark şu şekildedir:

KOYMAK İLETİ
Bu yöntem idempotenttir. Bu yöntem idempotent değildir.
PUT yöntemi, zaten kaynak koleksiyonunun bir parçası olan tek bir kaynağı değiştirmeniz gerektiğinde çağrıdır. POST yöntemi, kaynak koleksiyonu altına bir alt kaynak eklemeniz gerektiğinde yapılan çağrıdır.
RFC-2616, PUT yönteminin, sağlanan istek URI'sinde depolanan kapalı bir varlık için bir istek gönderdiğini gösterir. Bu yöntem, sunucunun talepte bulunan varlığı kabul etmesini ister.
PUT yöntemi sözdizimi PUT / soru / {soru-kimliği} şeklindedir POST yöntemi sözdizimi POST / sorular şeklindedir
PUT yöntemi yanıtı önbelleğe alınabilir. PUT yöntemi yanıtlarını önbelleğe alamazsınız.
PUT / vi / juice / orders / 1234, "1234" ile tanımlanan bir kaynağı güncellediğinizi gösterir. POST / vi / juice / orders, yeni bir kaynak oluşturduğunuzu ve kaynağı açıklamak için bir tanımlayıcı döndürdüğünüzü gösterir.
Aynı isteği birden çok kez gönderirseniz, sonuç aynı kalacaktır. Aynı POST isteğini birden fazla gönderirseniz, farklı sonuçlar alırsınız.
PUT spesifik olarak çalışır. POST soyut olarak çalışır.
PUT'ta UPDATE sorgusunu kullanıyoruz. POST'ta sorgu oluştur kullanıyoruz.
PUT yönteminde, istemci hangi URI kaynağına sahip olması gerektiğine karar verir. POST yönteminde, sunucu hangi URI kaynağına sahip olması gerektiğine karar verir.

PUT istekleriyle bir API'yi test etme

API'yi PUT istekleriyle test etme adımları şunlardır:

PUT istekleriyle bir API'yi test etme

Adım 1) Kaynakları PUT isteği ile güncelleyin.

Adım 2) Kaynak için GET yöntemini kullanın. PUT başarılı olursa, yeni veriler alırsınız. İstekte sağlanan veriler geçersizse bu yöntem başarısız olacaktır. Bu nedenle, hiçbir şeyi güncellemeyecektir.

POST istekleriyle bir API'yi test etme

API'yi POST istekleriyle test etme adımları şunlardır:

POST istekleriyle bir API'yi test etme

Adım 1) POST isteğini kullanarak bir kaynak oluşturun ve 200 durum kodunu döndürdüğünden emin olun.

Adım 2) Bu kaynak için bir GET isteğinde bulunun ve verileri doğru biçimde kaydedin.

Adım 3) POST isteklerinin yanlış verilerle başarısız olmasını sağlayan testler eklemelisiniz.

PUT Yönteminin Avantajları

PUT yöntemini kullanmanın avantajları / faydaları şunlardır:

  • Sağlanan varlığı sağlanan URI altında depolamanıza yardımcı olur
  • Sağlanan varlık zaten mevcutsa, güncelleme işlemini gerçekleştirebilir veya bu URI ile oluşturabilirsiniz.
  • İstediğiniz kadar çok kaynak oluşturabilirsiniz.
  • PUT yöntemi ile kaynak oluşturmak çok kolaydır.
  • Kullanıcının gönder düğmesine birden çok kez tıklayıp tıklamadığını kontrol etmenize gerek yoktur.
  • Talebin içerdiği varlığı tanımlayabilir.

POST Yönteminin Avantajları

POST yöntemini kullanmanın avantajları / avantajları şunlardır:

  • Bu yöntem, kaynak URI'sini belirlemenize yardımcı olur.
  • Yeni bir kaynak konumu başlığı belirlemek, konum başlığını kullanarak çok kolaydır.
  • Varlığı, URI tarafından tanımlanan kaynağın yeni bir alt öğesi olarak kabul etmek için bir istek gönderebilirsiniz.
  • Kullanıcı tarafından oluşturulan verileri web sunucusuna gönderebilirsiniz.
  • Herhangi bir kaynağı saklamak için URL bilmediğinizde çok kullanışlıdır.
  • Kaynaklarınızın URL üretimini kontrol eden sunucuya ihtiyacınız olduğunda POST'u kullanın.
  • POST, istekleri tarayıcı geçmişinde kalmadığından güvenli bir yöntemdir.
  • Gönderi kullanarak büyük miktarda veriyi zahmetsizce aktarabilirsiniz.
  • Verileri gizli tutabilirsiniz.
  • Bu yöntem, ikili verilerin yanı sıra ASCII verilerini göndermek için kullanılabilir.