Methodlar ve istek semantiği
Method’lar, safe ve idempotent
Tekrar etmek ile okumak farklı özelliklerdir.
Kavramı anlayalım
GET ve HEAD’in tanımlı amacı bilgi okumaktır; uygulama bu çağrılarla sipariş silerse protokolün safe anlamını bozar. Log yazılması gibi tali etkiler, talep edilen iş etkisiyle aynı değildir. PUT belirlenen kaynağın temsilini oluşturur veya değiştirir; DELETE kaldırma niyetidir.
Idempotent, aynı isteğin tekrarının hedeflenen etkiyi bir kez uygulamakla aynı olmasıdır; bütün yanıtların aynı status ile gelmesi gerekmez. İlk DELETE 204, ikinci 404 dönse de hedeflenen son durum kaynak yokluğudur. POST genel olarak idempotent kabul edilmez. PATCH’in davranışı patch işleminin türüne bağlıdır.
HEAD gövde içermeyen GET benzeri metadata okumadır; gövde olsaydı uzunluğu ne olurdu bilgisi bazı başlıklarda görülebilir. OPTIONS yetenekleri bildirebilir ve CORS preflight’ında kullanılır. Method adı tek başına güvenlik kontrolü değildir.
Retry, crawler ve API sözleşmelerini doğru tasarlamak için.
Idempotent ise her yanıt aynı olmalı sanmak.
Aynı konu. Üç farklı derinlik.
GET /products/7 HTTP/1.1
Host: example.testOkuma niyeti.
Bu sayfa dış sunuculara istek göndermez. HTTP mesajları temsili, HTTP/1.1 biçiminde okunabilir gösterimlerdir; HTTP/2 ve HTTP/3 wire formatı değildir. example.test ayrılmış öğretim alan adıdır. Komut ve JavaScript örneklerini yalnız kendi test ortamında uygula; gerçek token veya cookie yayımlama.
Önce kendin dene.
POST ile ödeme timeout olduysa hemen tekrar göndermek güvenli midir?
Çözümü ve açıklamasını göster
Unknown outcome → reconcile / idempotency contractHayır; ilk işlem tamamlanmış olabilir. Tekrarlama sözleşmesi ve sorgulanabilir işlem kimliği gerekir.