V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
vevlins
V2EX  ›  前端开发

不指定 http 或者 https 协议背后的逻辑是怎样的?

  •  
  •   vevlins · 2018-06-12 11:32:54 +08:00 · 1624 次点击
    这是一个创建于 2349 天前的主题,其中的信息可能已经有所发展或是发生改变。

    浏览器怎么判断加哪一个?

    5 条回复    2018-06-13 00:56:02 +08:00
    noe132
        1
    noe132  
       2018-06-12 11:47:06 +08:00   ❤️ 1
    根据当前页面,自动使用 https 或 http。
    hlwjia
        2
    hlwjia  
       2018-06-12 11:53:53 +08:00   ❤️ 1
    浏览器默认是 http 的(毕竟不是所有网站都支持 https ),是到了服务器之后再 301 到 https
    vevlins
        3
    vevlins  
    OP
       2018-06-12 11:58:43 +08:00
    @noe132 问题就是这个自动 是浏览器后台发了一个请求去判断还是什么? 比如像自己做的 app,会不会按照客户端能力检测自己加上而不需要请求判断
    honeycomb
        4
    honeycomb  
       2018-06-12 12:08:09 +08:00 via Android   ❤️ 1
    @vevlins 见楼上 @noe132 的,访问某个(不特定)页面,网站发了 301 跳转。
    这种情况是建立了 HTTP 会话后,再重新建立 TLS+HTTPS

    还有一种情况是 hsts,此时浏览器会主动强制访问 HTTPS 版的地址(即便用户输入了 HTTP ),且拒绝降级到 HTTP
    MonoLogueChi
        5
    MonoLogueChi  
       2018-06-13 00:56:02 +08:00 via Android   ❤️ 1
    是指链接里不制定协议吗,比如 //www.baidu.com
    这样的浏览器会根据当前页面的协议去主动请求,你用的 HTTP 就是 HTTP,你用的 HTTPS 就是 HTTPS。也就是一楼所说的。
    然后再接下来就是 4 楼所说的,如果服务器支持 HTTP 请求,那就是 HTTP,如果是强制 HTTPS,就是 HTTPS
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2917 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 13:36 · PVG 21:36 · LAX 05:36 · JFK 08:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.