java - 浏览器仅针对受限页面发送授权 header - 它是如何知道的?

标签 java jsp http servlets basic-authentication

我有一个示例应用程序,其中很少有页面具有安全约束。 (共 5 页。已保护 2 页)

我正在观看 Fiddler 中的请求/响应集,感到很惊讶!

即使 BASIC 授权完成后,浏览器也仅为我的受限页面发送授权 header 。 浏览器如何知道应用程序中的哪些页面受到限制?

我想知道浏览器是否执行以下操作之一:

  1. 浏览器是否在每次 GET 之前执行 HEAD 请求?如果导航到的页面受到限制,它会这样查找吗?
  2. 浏览器是否采用类似于“导致 401 的 url 位于同一文件夹中的所有页面”这样的 url 模式?

最佳答案

恕我直言,它不知道。但它可以缓存最后一次访问时服务器要求身份验证的事实。要控制它,您应该:

  • 清除浏览器中的所有内容(cookie、历史记录、缓存)
  • 停止并重新启动(以确保您使用一个干净浏览器)
  • 然后检查请求和响应

您应该第一次看到每个安全页面的两个连续请求,首先获得 401 未经授权响应,第二次携带身份验证 header 。当同一页面上的以下请求时,浏览器会记住该页面需要身份验证并直接发送 header ,而不向其他页面发送 header 。

所以它不会猜测,而只会记住哪些页面需要身份验证 header 。

关于java - 浏览器仅针对受限页面发送授权 header - 它是如何知道的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24721638/

相关文章:

java - Servlet 在刷新时取消发布请求

java - 无法上传大文件

asp.net-mvc-3 - 如何在 MVC3 操作方法中访问 c​​ookie?

java - 未在泛型类中实现泛型方法

java - 使用spring mvc时jsp页面出错

java - 如何在 JTable 中的特定单元格中添加下拉框,例如 Microsoft Excel?

java - 如何将 JSP 中的选择值获取到 servlet? JAVAEE

HTTP 客户端超时和服务器超时

node.js - 在 mocha 中获取超时错误

MongoDB 的 Java 驱动程序 : Can't resolve function toJson()