我有一个示例应用程序,其中很少有页面具有安全约束。 (共 5 页。已保护 2 页)
我正在观看 Fiddler 中的请求/响应集,感到很惊讶!
即使 BASIC 授权完成后,浏览器也仅为我的受限页面发送授权 header 。 浏览器如何知道应用程序中的哪些页面受到限制?
我想知道浏览器是否执行以下操作之一:
- 浏览器是否在每次 GET 之前执行 HEAD 请求?如果导航到的页面受到限制,它会这样查找吗?
- 浏览器是否采用类似于“导致 401 的 url 位于同一文件夹中的所有页面”这样的 url 模式?
最佳答案
恕我直言,它不知道。但它可以缓存最后一次访问时服务器要求身份验证的事实。要控制它,您应该:
- 清除浏览器中的所有内容(cookie、历史记录、缓存)
- 停止并重新启动(以确保您使用一个干净浏览器)
- 仅然后检查请求和响应
您应该第一次看到每个安全页面的两个连续请求,首先获得 401 未经授权响应,第二次携带身份验证 header 。当同一页面上的以下请求时,浏览器会记住该页面需要身份验证并直接发送 header ,而不向其他页面发送 header 。
所以它不会猜测,而只会记住哪些页面需要身份验证 header 。
关于java - 浏览器仅针对受限页面发送授权 header - 它是如何知道的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24721638/