Czy powinienem zwrócić kod stanu HTTP 401 w formularzu logowania opartym na HTML? Strona jest dedykowanym formularzem logowania i nie zawiera żadnych innych istotnych treści, a jedynie strukturę strony. Adres URL może jednak oznaczać stronę, która ma znaczącą treść, ale wymaga zalogowania. Należy pamiętać, że ta konfiguracja zwraca tylko kod stanu 401 i nie monituje użytkownika o podstawowe uwierzytelnienie.
Patrząc na standardy, wydaje się, że 401 jest nieodpowiednim kodem statusu dla formularzy logowania opartych na HTML. Jednak nigdy nie spotkałem się z żadnymi złymi konsekwencjami takiego postępowania.
Podczas wysyłania 401 „Odpowiedź MUSI zawierać pole nagłówka Uwierzytelnianie WWW (sekcja 14.47) zawierające wyzwanie mające zastosowanie do żądanego zasobu”.
wymóg wymieniony tutaj:
http://tools.ietf.org/html/rfc2616#section-10.4.2
szczegółowo tutaj:
http://tools.ietf.org/html/rfc2617#section-3.2.1
Wiem, że istnieją sposoby na obejście wyszukiwarek w celu przekonania ich do indeksowania stron, lub nie, na podstawie obecności formularza logowania, ale wolałbym używać kodów stanu HTTP, w szczególności 401, ponieważ jego definicja wydaje się być idealne dopasowanie, jeśli nie wymaga wymagania nagłówka Uwierzytelnianie WWW.
Czy jest jakiś powód, dla którego nie powinienem używać 401 w tym przypadku? Semantycznie czy jest jakaś różnica między brakiem autoryzacji na poziomie http a autoryzacją na poziomie aplikacji? Oczywiście możesz mieć jedno i drugie, ale czy uwierzytelnianie na poziomie http nie jest po prostu ze względu na łatwość niewprowadzania go na poziomie aplikacji?