http - 通过 401 Unauthorized 提供登录表单

标签 http authentication

假设未经身份验证的用户试图获取只有授权用户才能看到的页面:/profile/preferences

用 401 Unauthorized 连同登录页面的内容回复此问题是正常做法,还是将 302 Found 重定向到登录页面然后将用户发送回/profile/preferences 更好?

每种方法的优点和缺点是什么?您能否提供使用第一种方法的网站示例?

最佳答案

如果您谈论的是“登录页面”,那么您使用的是表单例份验证。只有在 HTTP 级别进行身份验证(例如,使用 basic-auth 或 digest-auth)时,才提供 401 服务才有意义,因为 401 响应必须包含一个 WWW-Authenticate: header 浏览器响应的挑战。

此外,如果您正在执行表单例份验证,您几乎肯定想要提供 301 服务——您的用户将永远无法通过您的登录屏幕。 :-) 301 用于永久移动。对于表单例份验证的重定向之类的东西,您应该使用 302。

关于http - 通过 401 Unauthorized 提供登录表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3736183/

相关文章:

python - 当登录来自cookie时,如何识别用户登录?

在单独的 goroutine 中显示进度的 HTTP 服务器

javascript - 用javascript检测当前页面是否有post数据

java - 将数据保存到 CouchDB 服务器的 HTTP PUT 请求 - Java Android?

http - 您可以将 Keep-Alive 与带有 HTTP 代理的 CONNECT 请求一起使用吗?

authentication - 无法使用Golang使用服务帐户凭据访问Google Spreadsheets

c# - 如何在我的 C# 类中运行 jQuery?

c# - Windows 应用商店应用程序 - C# - Https 客户端身份验证

javascript - IE 9 中阻止的 Facebook 登录弹出窗口

c# - 在 OneDrive 上创建文本文件以设置和获取数据