gpt4 book ai didi

http - 为什么要检测 HTTP 协议(protocol)而不是仅使用 '//' 链接内容,如 JS、AJAX、CSS 等?

转载 作者:太空宇宙 更新时间:2023-11-03 14:46:19 25 4
gpt4 key购买 nike

我见过很多软件试图确定当前协议(protocol)是 HTTP 还是 HTTPS,主要是为了输出链接并避免 Mixed content error .

通常软件会检查一些服务器变量(例如,PHP 中的 $_SERVER['HTTP'],请参阅此问题:PHP Get Site URL Protocol - http vs https)。

此方法可能有效,但会失败,例如当您有一个反向代理接收 SSL 流量并通过 HTTP 向 Web 服务器请求内容时(因此当软件检查 HTTPS 状态时它已关闭)。 Web 服务器将使用 HTTP 链接进行响应,但内容实际上是通过 HTTPS 的服务器。

对此有一个简单的解决方案:只使用不带协议(protocol)的链接:“//”而不是“http://”或“https://”。

所以,我的问题是:检测当前协议(protocol)(http 或 https)而不是仅对内容链接(CSS、JS、图像、AJAX 等)使用默认协议(protocol)是更好的做法吗?如果是,这是为什么?

最佳答案

使用“//”是可行的,但这意味着您的资源必须通过 http 和 https 可用。

因此您只需使用“https://”即可确保始终使用安全连接,并避免混合内容错误。

(当然,最安全的选择是始终使用 https,在 http 和 HSTS 上使用 301 重定向)

关于http - 为什么要检测 HTTP 协议(protocol)而不是仅使用 '//' 链接内容,如 JS、AJAX、CSS 等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38741055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com