Diğer yanıtların eksik olduğu bir şey, RFC 2616 bağlamındaki Kimlik Doğrulama ve Yetkilendirmenin SADECE RFC 2617'nin HTTP Kimlik Doğrulama protokolüne atıfta bulunduğu anlaşılmalıdır. RFC2617 dışındaki şemalarla kimlik doğrulama HTTP durum kodlarında desteklenmez ve dikkate alınmaz 401 veya 403 kullanıp kullanmayacağınıza karar verirken.
Kısa ve Kısa
Yetkisiz, istemcinin RFC2617 kimliği doğrulanmadığını ve sunucunun kimlik doğrulama işlemini başlattığını belirtir. Yasak, istemcinin RFC2617 kimlik doğrulaması olduğunu ve yetkilendirmenin olmadığını veya sunucunun istenen kaynak için RFC2617'yi desteklemediğini belirtir.
Yani, kendi rulo giriş işleminiz varsa ve asla HTTP Kimlik Doğrulaması kullanmıyorsanız, 403 her zaman doğru yanıttır ve 401 asla kullanılmamalıdır.
Ayrıntılı ve Derinlemesine
Gönderen RFC2616
10.4.2 401 Yetkisiz
İstek için kullanıcı kimlik doğrulaması gerekiyor. Yanıt, istenen kaynağa uygulanabilecek bir zorluk içeren bir WWW-Authenticate başlık alanı (bölüm 14.47) içermelidir ZORUNLU. Müşteri isteği uygun bir Yetkilendirme başlığı alanı ile tekrarlayabilir (bölüm 14.8).
ve
10.4.4 403 Yasak Sunucu isteği anladı ancak yerine getirmeyi reddediyor. Yetkilendirme yardımcı olmaz ve istek tekrarlanmamalıdır.
Akılda tutulması gereken ilk şey, bu belge bağlamında "Kimlik Doğrulama" ve "Yetkilendirme" nin özellikle RFC 2617'deki HTTP Kimlik Doğrulama protokollerine atıfta bulunmasıdır. giriş sayfaları, vb kullanarak. Ben RFC2617 dışında yöntemlerle kimlik doğrulama ve yetkilendirme başvurmak için "giriş" kullanacağım
Yani asıl fark, sorunun ne olduğu veya bir çözüm olsa bile. Fark, sunucunun istemcinin bundan sonra yapmasını beklediği şeydir.
401 kaynağın sağlanamadığını, ancak sunucunun istemcinin HTTP Kimlik Doğrulaması yoluyla oturum açmasını İSTEDİĞİNİ belirtir ve işlemi başlatmak için yanıt üstbilgileri gönderdi. Muhtemelen kaynağa erişime izin verecek yetkiler vardır, muhtemelen yoktur, ancak bir deneyin ve neler olduğunu görelim.
403, kaynağın sağlanamadığını ve mevcut kullanıcı için bunu RFC2617 aracılığıyla çözmenin bir yolu olmadığını ve denemenin bir anlamı olmadığını gösterir. Bunun nedeni, hiçbir kimlik doğrulama düzeyinin yeterli olmadığı (örneğin bir IP kara listesi nedeniyle) olduğu için olabilir, ancak kullanıcının zaten kimliği doğrulanmış ve yetkisi olmadığı için olabilir. RFC2617 modeli bir kullanıcı, bir kimlik bilgisidir, bu nedenle kullanıcının yetkilendirilebilecek ikinci bir kimlik bilgisi kümesine sahip olması durumunda göz ardı edilebilir. Bir tür giriş sayfasının veya diğer RFC2617 olmayan kimlik doğrulama protokolünün RFC2616 standartları ve tanımının dışında olduğu konusunda yardımcı olabileceğini veya olmayabileceğini ima etmez veya ima etmez.
Düzenleme: RFC2616 kullanılmıyor, bkz. RFC7231 ve RFC7235 .