HTTP fiilleri muhtemelen HTTP protokolü ile ilgili en şifreli şeylerden biridir. Varlar ve birçoğu var, ama neden varlar?
Rails, birçok fiili desteklemek ve yerel olarak web tarayıcıları tarafından desteklenmeyen bazı fiiller eklemek istiyor gibi görünüyor.
İşte http fiillerin kapsamlı bir listesi: http://annevankesteren.nl/2007/10/http-methods
Resmi RFC'den HTTP yaması var: https://datatracker.ietf.org/doc/rfc5789/?include_text=1
YAMA istek varlığı açıklanan değişikliklerin bir dizi request- URI tarafından tanımlanan kaynağın uygulanabilir bu yöntem istekleri. Değişiklikler kümesi, ortam türü tarafından tanımlanan "yama belgesi" olarak adlandırılan bir biçimde gösterilir. İstenen URI varolan bir kaynağa işaret etmezse, sunucu OLABİLİR vb (mantik olarak boş kaynak değiştirebilir olsun) yama belge türüne bağlı olarak ve izinleri, yeni bir kaynak oluşturun
PUT ve PATCH istekleri arasındaki fark , sunucunun ekteki varlığı İstek-URI tarafından tanımlanan kaynağı değiştirmek için işleme biçiminde yansıtılır. Bir PUT isteğinde, ekteki varlık kaynak sunucuda depolanan kaynağın değiştirilmiş bir sürümü olarak kabul edilir ve istemci depolanan sürümün değiştirilmesini ister. Ancak PATCH ile ekteki varlık, kaynak sunucuda bulunan bir kaynağın yeni bir sürüm üretmek için nasıl değiştirilmesi gerektiğini açıklayan bir dizi talimat içerir. YAMA
yöntemi tarafından tespit kaynak etkiler Request-URI ve aynı zamanda
MAYISdiğer kaynaklar üzerinde yan etkileri vardır; yani, bir PATCH uygulamasıyla yeni kaynaklar oluşturulabilir veya mevcut kaynaklar değiştirilebilir .
Bildiğim kadarıyla, PATCH fiili ray uygulamalarında olduğu gibi kullanılmıyor ... Bunu anladığım kadarıyla, RFC yama fiili, iki dosya arasında fark yaptığınız gibi yama talimatları göndermek için kullanılmalıdır. Tüm varlığı tekrar göndermek yerine, tüm varlığı yeniden göndermekten çok daha küçük bir yama gönderirsiniz.
Büyük bir dosyayı düzenlemek istediğinizi düşünün. 3 satır düzenlersiniz. Dosyayı geri göndermek yerine, farkları göndermeniz yeterlidir. Artı tarafta, dosyaları eşzamansız olarak birleştirmek için bir yama isteği göndermek kullanılabilir. Bir sürüm kontrol sistemi, kodu uzaktan güncellemek için PATCH fiilini kullanabilir.
Bir başka olası kullanım durumu, NoSQL veritabanlarıyla biraz ilişkilidir, belgeleri saklamak mümkündür. Verileri sunucudan istemciye ileri ve geri göndermek için bir JSON yapısı kullandığımızı varsayalım. Bir alanı silmek isteseydik, $ unset için mongodb'dakine benzer bir sözdizimi kullanabiliriz . Aslında, belgeleri güncellemek için mongodb'da kullanılan yöntem muhtemelen json yamalarını işlemek için kullanılabilir.
Bu örnekte:
db.products.update(
{ sku: "unknown" },
{ $unset: { quantity: "", instock: "" } }
)
Böyle bir şeyimiz olabilir:
PATCH /products?sku=unknown
{ "$unset": { "quantity": "", "instock": "" } }
Son olarak, ama en önemlisi, insanlar HTTP fiilleri hakkında istediklerini söyleyebilirler. Sadece bir gerçek var ve gerçek RFC'lerde.