Devo retornar um código de status http 401 em um formulário de login baseado em html? A página é um formulário de login dedicado e não possui nenhum outro conteúdo significativo, apenas a estrutura do site. O URL, no entanto, pode ser para uma página que possui conteúdo significativo, mas requer login. Observe que essa configuração retorna apenas o código de status 401 e não solicita autenticação básica ao usuário.
Observando os padrões, parece que 401 é um código de status inadequado para formulários de login baseados em html. No entanto, nunca experimentei ou ouvi falar de quaisquer conseqüências ruins de fazê-lo.
Ao enviar 401, "A resposta DEVE incluir um campo de cabeçalho WWW-Authenticate (seção 14.47) contendo um desafio aplicável ao recurso solicitado."
requisito mencionado aqui:
http://tools.ietf.org/html/rfc2616#section-10.4.2
detalhado aqui:
http://tools.ietf.org/html/rfc2617#section-3.2.1
Sei que existem maneiras de contornar os mecanismos de pesquisa para convencê-los a indexar, ou não, páginas com base na presença de um formulário de login, mas eu prefiro usar códigos de status http, especificamente 401, pois sua definição parece uma combinação perfeita, se não for para o requisito de cabeçalho WWW-Authenticate.
Existe alguma razão para eu não usar o 401 neste caso? Semanticamente, existe alguma diferença entre não ser autorizado no nível http e ser autorizado no nível do aplicativo? Obviamente, você pode ter os dois, mas a autenticação no nível http não é apenas para facilitar a implementação no nível do aplicativo?