@ Dherik'in cevabına ek olarak.
URI'ler tanımlayıcılardır , bu nedenle ( /a/{id}/b
bir tanımlayıcıdır) unutmayın. URI WWW için anlamsızdır ve bu yüzden HTTP istemcisi içindir.
404 doğru cevaptır . Esasen, sunucu cevap veriyor
Böyle bir kimliğe sahip herhangi bir kaynak bulamadım. Kaynak bulunamadı
1
Eksik kaynağın ebeveyn veya çocuk olması önemli değildir.
Geliştiriciler olarak bizler, URI'deki hiyerarşileri ve yolları görüyoruz , ancak HTTP istemcileri görmüyor. Başka bir deyişle, HTTP yalnızca HTTP istemcileri tarafından yorumlanır, insanlar tarafından (devs, son kullanıcılar, vb.) Yorumlanmaz.
Şüphe durumunda, hangi kodun sizin için anlamlı olduğunu sormayın (insan). HTTP istemcisi için hangi kodun anlamlı olduğunu sorun. HTTP istemcisinin nasıl davranmasını istersiniz?
Neden? Çünkü bazı durum kodu bu istemcilerin belirli işlemleri gerçekleştirmesine neden olur. Örneğin, 302 . Bu kod genellikle web tarayıcılarının yanıt başlıklarında bildirilen belirli bir konuma (URI) yönlendirmesini sağlar.
Bu sizin durumunuz olmayabilir, ancak farkında olmak önemlidir. Sonuçta, HTTP durum kodları HTTP istemcilerine yöneliktir. Bizim uygulamalarımıza değil. Kişilere değil.
1: 409 , seyrüsefer hatası olarak nadiren uygulanır. Genellikle uzaktan işlemlerin (silme, güncelleme, yeni vb.) Yürütülmesini içerir. Ancak URI mevcut olmalıdır. Aksi takdirde, 404 geçerli olacak