【问题标题】:When to add http(s):// to website address何时将 http(s):// 添加到网站地址
【发布时间】:2015-02-17 22:23:32
【问题描述】:

我正在尝试使用 Cocoa 和 Swift 创建一个 Web 浏览器。我有一个NSTextField,用户可以在其中输入他想要打开的网站,还有一个WebView,其中显示了请求的页面。到目前为止,为了改善用户体验,我正在检查用户输入的网站是否以http://开头,如果不是则添加。好吧,它适用于大多数情况,但并非每次都适用,例如当用户想要打开本地网页或about:blank 之类的东西时。如何检查是否需要添加 http:// 以及是否应该添加 https:// 而不是 http://

【问题讨论】:

    标签: http url swift https


    【解决方案1】:

    您需要更精确地对用户输入的内容进行分类。 以下是一些示例和预期反应:

    1. www.google.com: 应该翻译成http://www.google.com
    2. ftp://www.foo.com:不应该修改。文件://(本地)也是如此
    3. Barrack Obama:可能应该运行一个搜索引擎
    4. about:settings: 应该打开一个内部页面

    因此,在您弄清楚这些规则及其所有例外之后,您可以使用正则表达式来找出应该做什么。

    至于 HTTP 与 HTTPS - 如果站点支持 HTTPS,则如果您转到 HTTP 链接,您将获得重定向响应(307 内部重定向、301 永久移动等)。例如,如果您尝试导航到 http://www.facebook.com,您将收到一个 307,将您重定向到 https://www.facebook.com。换句话说,由网站告诉浏览器它有 HTTPS(当然,除非你一开始就导航到 HTTPS)。

    【讨论】:

      【解决方案2】:

      一种简单且相当准确的方法就是寻找不同模式的存在。如果字符串在遇到任何斜杠之前以 [SomeText]: 开头,则它可能旨在指示不同的架构,例如 about:mailto:file:ftp:

      如果您没有看到非 http 架构,请尝试通过添加 http:// 将 URL 解析为 HTTP URL。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-05-03
        • 2014-04-25
        • 1970-01-01
        • 2015-09-20
        • 2016-07-08
        • 1970-01-01
        • 2013-08-24
        • 2020-08-28
        相关资源
        最近更新 更多