2012-07-04 20 views
6
ayırt etmek

uygun tepki kodları ve iletileri için nelerdir:HTTP yanıt kodları uygunsuz parametreler ve başarısız değerler

  1. alanları yanlış şekilde sunulan (vücudun vs URL parametreleri) ya da eksik alanlar geçersiz değerler elde
  2. alanlar (yerine sayı dizesi, ileride zaman damgası)
  3. bazı karakterler URL'de ?, / mola şeyler
  4. Gerçek başarısızlıkları parametreleri gibi: zaten bitmiş eylemi
  5. tekrarlayarak geçersiz kimlik bilgileri,

Şu anda, hepimiz 400 kullanacağız.

cevap

6

Durumlar 1, 2 ve söz konusu 3 istekte esasen sözdizimsel hatalardır

=>400 Geçersiz İstek

(RFC 2616 diyor ki: istek sunucu tarafından anlaşılamadı . nedeniyle bozuk biçimli sözdizimine)

4 harf ilişkin olarak:

a. Geçersiz kimlik bilgileri

=>401 Yetkisiz

b

. Sunucu isteği anladı fakat bunu yerine getirmek için reddediyor Yetkilendirme yardımcı olmaz ve istek tekrarlanacak OLMAMALIDIR: zaten bitmiş eylemi

Yasak

=>403 Tekrarlayan (RFC diyor..)

Ama sonra 409 Çatışma ve hatalı şeyler değiştirmeye çalışırken 410 mantıklı Gone (PUT) ya da sırasıyla zaten silinmiş kaynaklara erişme. Ve buradaki RFC 2616 Section 10.

3

Yanıt gövdesinde neyin döndürüleceği hakkında bilgi almak için her yanıt kodu için HTTP özelliklerini okuyun. 4xx, örneğin, "HEAD isteğine yanıt verirken, sunucu, hata durumunun açıklamasını ve geçici veya kalıcı bir durum olup olmadığını içeren bir gösterimi de içermelidir" diyor.

Akılda tutulması gereken birincil nokta, HTTP yanıt kodlarının tekdüze olacak şekilde tasarlanması ve bu nedenle, tek tek uygulamaların ayrıntılı gereksinimlerinin beslenmesinden ziyade birlikte işlerliği teşvik etmekle daha fazla ilgisi olmasıdır. Müşterilerinizin anlamasını beklediğiniz bir biçimde dakika ayrıntılarını dahil etmek için kodu değil, yanıt gövdesini kullanın.

1 alanları yanlış şekilde (vücudun vs URL parametreleri) ya da eksik alanları

Dönüş "Not Found 404" sundu. Querystring parametreleri URI'nin bir parçasıdır ve bir kaynağı tanımlamak için kullanılır./foo/bar?a=1&b=2, foo/bar'dan farklı bir kaynak tanımlar. Kaynak mevcut değilse, 404 değerini döndürün. Kodunuzdaki aynı mantık, aynı yol için herhangi bir sorgulama parametrelerini işlemek için kullanılmaz. Bu ayrıntılar, tek biçimli arabirimin arkasında kasıtlı olarak gizlenir. Daha fazla ayrıntı için bkz. the URI spec.

2 alanlar geçersiz değerler (sayılar yerine dizesi, ileride zaman damgası) kaynak kullanıcı makul olabilir istekle çakışan bir devlet olmadıkça

400, burada en iyisi alma 409.

3 gibi bazı karakterler?,/URL içinde kırılma şeyler parametreleri bu durumda dönüş içinde çözmek (ve daha sonra isteğinizi yeniden) mümkün

Böyle bir kırılma, sorgunun, querystring bileşeninde ayrılmış karakterleri doğru bir şekilde işlememesi nedeniyle 500 olarak dönerse. İstemci hatalı biçimlendirilmiş bir İstek URI'si gönderdiyse, 400 değerini döndürün. URI sunucunuzun işlemediği bir kaynağı tanımlarsa, döndürün 404.

4 Fiili hataları: geçersiz kimlik bilgileri, önceden yapılan eylemi

geçersiz kimlik bilgileri tekrarlayarak "Yetkisiz 401" yol açmalıdır. Daha önce yapılmış bir eylemin yinelenmesi, istek yöntemi idempotent (GET, HEAD, PUT, DELETE) ise, 200 OK (veya bir yönlendirme, vb.) Ile sonuçlanmalıdır. POST için, bir eylemin tekrarlanması tamamen eylemin niteliğine bağlıdır ve pratik olarak herhangi bir durum kodu iade edilebilir. 400/409 yaygındır, ancak bu tür kaynakların çoğu sadece tekrar tekrar harekete geçerek, bu eylemi tekrar gerçekleştirir.

+0

+1. Tuhaf URL'ler için 404 anlamlı geliyor. – ArjunShankar

İlgili konular