gpt4 book ai didi

ios - 如何检查 Web 服务器是否具有 SSL

转载 作者:行者123 更新时间:2023-11-28 12:15:11 25 4
gpt4 key购买 nike

我正在使用 WKWebView 开发一个小型网络浏览器应用程序。在那里,当用户输入 url 时,我想检查相关的 web 服务器是否有 SSL,然后重定向到 https://。

例如用户输入 http://facebook.com .由于 facebook 有 SSL,我想将用户重定向到 https://facebook.com

如有任何帮助,我们将不胜感激。

已编辑:我的错。它是由网站自己完成的。我误解了一些东西。

最佳答案

由于您没有向我们提供太多详细信息或限制,只有您知道以下选项最适合您的需求。

客户端的朴素方法

  • 从 URL 中剥离协议(protocol) HTTP 并将其替换为 HTTPS
  • 使用新形成的 URL 进行 HEAD 调用
  • 收到肯定的响应代码 (2XX) 后,您可以推断 HTTPS 可用并自行进行重定向

此解决方案以“猜测”HTTPS 可用性的初始调用为代价。如果结果是肯定的,您需要再打电话来获取文档。

预测方法

预测该网站有 HTTPS 并立即请求它。如果页面没有返回,您可以使用 HTTP 重试。当然,您要确保在确定这两个请求的结果之前不向用户显示任何内容。不要将此解决方案与上一个解决方案混淆。此解决方案尝试立即“加载”网站,而前一个解决方案首先“验证”。

全部获取

由于您是从头开始开发浏览器,请考虑同时获取这两个页面的可能性。以并发方式获取 HTTP 和 HTTPS 的两个 URL。在收到 HTTPS 的肯定响应后,您将显示它。否则,您只会显示 HTTP 响应(好或坏)。

现代浏览器策略

让服务器始终使用提供的 URL 来决定。这样做时,如果不允许 HTTP,服务器“应该”通过使用重定向状态代码 (3xx) 进行应答来提醒您,并在响应 header 中为您提供新的目的地。这种方法简化了客户端逻辑,但期望服务器发送重定向详细信息。请注意,并非所有网站都会处理这种情况。

http://www.gmail.com 请求示例

Request URL:http://www.gmail.com/
Request Method:GET

响应 header

Status Code:307 Internal Redirect
Referrer Policy:no-referrer-when-downgrade
Location:https://www.gmail.com/
Non-Authoritative-Reason:HSTS

关于ios - 如何检查 Web 服务器是否具有 SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46885175/

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