0

Dig, wget,nslookupcurl命令对于我在不到 24 小时前指向另一台服务器的特定 URL 非常有效。
问题是,它只是拒绝被浏览器(Chrome、Safari 和 Firefox)解决。最奇怪的部分是 Postman 成功解决了它(通过分别测试 OPTIONS 和 GET 方法),但仍然没有在浏览器端返回正确的响应。
DNS 检查返回正值,所以这是我开始怀疑问题实际上是在发送的 HTTP 协议请求的标头中的时候 - 除了不包括默认浏览器的请求返回不同响应的事实标头(通过不同的命令行工具和 Postman 发出)和发出的标头(由浏览器自动或使用开发工具手动发出)。
在完全刷新当前本地系统的 DNS 缓存(包括浏览器的缓存,甚至尝试另一个网络上的另一个设备)之后 - 我仍然在浏览器上没有任何响应。
继续前进,并尝试使用 VPN(本地 - 无效)和在线网络代理工具(有效)来验证这一点。
最后,我提取了路由器的默认 DNS 服务器地址,用于nslookup再次查找 URL,这次特别提到了所需的 DNS 服务器(上面提到的那个),并且在得到正确值的成功响应后,我现在差不多了确保 HTTP 请求导致问题。

该 URL 托管在 Amazon S3 静态托管选项上,我以前多次使用过该选项,并且使用完全相同的配置没有问题。查看最近可能添加的更改/功能,指出我可能需要在所需的通常公共访问策略之上为新创建的存储桶显式设置 CORS 策略。
在应用之后 - 它似乎仍然不起作用。

作为方向的快速变化,可能会使某些部分更清楚正在发生的事情(并且当我开始认为浏览器可能没有Content-Type在响应中获取正确的标头时,应该将text/html标头作为其响应,因此,可能没有以预期的行为解析 URL),我继续在 S3 存储桶上应用 301 重定向,而不是静态文件托管,同样,这一切都可以通过命令行工具完美运行,但不能通过浏览器.
无论如何,浏览器似乎没有完成任何发送到 URL 的请求。这可能是OPTIONS飞行前请求未能正确响应,浏览器只是不会继续发出GET请求,或者浏览器正在采用的 DNS 路由没有找到 URL,如果这是选项,我目前还不清楚。

有任何想法吗?(除了有时恰好在所选路由上的某些 DNS 服务器需要更长的时间来更新/刷新其缓存,这似乎不会影响我的本地计算机的 DNS 路由,专门针对这种情况。那个,谨慎地说,通过在我的系统(Mac OS X)上的不同可能部分中验证 DNS 配置的不同部分和优先级来验证,包括响应成功返回正确地址的事实)。

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

4

1 回答 1

0

在这里找到我的答案:
https ://serverfault.com/questions/942030/aws-s3-static-hosting-how-to-debug-connection-timeout

如链接在那里,可以在此处找到更多详细信息:
Non-Authoritative-Reason 标头字段 [HTTP]

解决方案和说明:由于我购买的域扩展名(.dev 扩展名)的性质,Chrome 一直在默默地使用,HTTPS因为 URL 是 .dev 的一部分Chrome's HTTP Strict Transport Security (HSTS),因为所有 .dev 域都应该只使用 HTTPS。因此,即使在http://URL 地址栏中明确输入,问题仍然存在。

这可以通过在 S3 静态托管之上应用具有 HTTPS 支持的 CloudFront 分配来覆盖,就像往常一样(但仍然应该注意,HSTS 列表可能会导致不同情况下出现这种情况,包括这个作为其中的一部分,因为.dev 域扩展名)。

在此处输入图像描述

在此处输入图像描述

有用的资源(用于调试目的)

  1. 除了此处所述:
    https
    ://gist.github.com/stollcri/7c09bafc97223481920e 您可以通过以下 Chrome 的设置 URL 发出查找查询(并添加或删除本地 HSTS 列表集): 在此处输入图像描述

  2. 您还可以在此处查看当前列表:https ://hstspreload.org/

于 2021-01-11T15:54:19.850 回答