SORU
4 Mart 2009, ÇARŞAMBA


URL sorgu parametreleri ile HTTP POST -- iyi fikir değil mi?

HTTP üzerinden gitmek için bir API tasarlıyorum ve URL sorgu parametreleri ile HTTP POST komutu kullanarak, ama ben merak ediyorum sadece bir talep gövde, gitmek için iyi bir yoldur.

Önemli noktalar:

  • "İyi bir Web Tasarım" olmayan idempotent POST. yoluyla gönderilmesi için eylem gerektirir Bu olmayan idempotent bir eylemdir.
  • İstek parametreleri URL varsa ve bu uygulamayı geliştirmek hata ayıklama daha kolaydır.
  • API yaygın kullanımı için tasarlanmamıştır.
  • Hiç kimse ile bir POST isteği yapmak biraz daha fazla çalışma gerektirir, örneğin Content-Length: 0 bir başlık açıkça eklenmelidir gibi görünüyor.
  • Ayrıca hiç kimse ile bir YAZI biraz çoğu geliştirici ve HTTP çerçeveler beklentilerini. aykırı gibi geliyor bana

URL Sorgu ile YAZI isteği Gönderen parametreleri yerine istek cesedin daha fazla tuzaklar ya da avantajları var mı?

Edit: bu göz altında olmasının nedeni operasyonları idempotent ve alma dışında bir yan etkisi var. the HTTP spec bkz

Özellikle, Kongre olmuştur OLSUN kurulan ve KAFA yöntem bu olmamalıdır başka bir eyleme önemi daha alma. Bu yöntemler gerek dikkate alınması "". güvenli Bu kullanıcı sağlar diğer yöntemler sunmak,aracıları POST, PUT ve DELETE, gibi kullanıcı yapılan özel yol, bu gerçeğin farkında bir olasılıkla bu güvenli olmayan eylem talep ediliyor.

...

Yöntemleri de bu özellik olabilir "idempotence" (kenara olarak hata veya son kullanma sorunları) yan etkiler N >0 aynı istekleri için tek bir aynıdır istek. Bu yöntem, KAFA, KOYUN ve bu özelliği SİLMEK paylaşımı. Ayrıca, yöntemleri SEÇENEKLER ve İZLEME GEREKİR OLMAYAN yan etkileri var ve bu yüzden doğal olarak idempotent.

CEVAP
4 Mart 2009, ÇARŞAMBA


Eğer eylem idempotent, daha sonra ise değilGEREKİRPOST kullanın. İhtiyacın olursa, sadece sorun için soruyorsun. GET, PUT DELETE yöntemlerdirgerekliidempotent olması için. Eğer istemci eğer bu yan etkiler istemciye görünür neden pre-fetching servis için GET mümkün olan her isteği olsaydı uygulamanızda ne olacağını düşünün, o zaman bir sorun var.

Ceset olmadan bir sorgu dizesi ile ama POST bir gönderme garip görünüyor kabul ediyorum, ama bazı durumlarda uygun olabilir bence.

Geçerli isteğin kapsamını sınırlamak için kaynak komut olarak bir URL sorgu kısmını düşün. Genellikle, sorgu dizeleri için kullanılır sıralama veya filtre GET istek (?page=1&sort=title) ama sanırım bu mantıklı bir POST da sınır kapsamı (belki de ?action=delete&id=5).

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Call Me Howard

    Call Me Howa

    18 AĞUSTOS 2012
  • DRDAnimation

    DRDAnimation

    28 EYLÜL 2012
  • PaulGBelliveau

    PaulGBellive

    5 Mart 2009