V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
vibrance
V2EX  ›  问与答

引用 js 时写 http://开头和只写//开头有什么区别?谢谢

  •  
  •   vibrance · 2015-11-12 01:58:29 +08:00 via iPhone · 4511 次点击
    这是一个创建于 3115 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大家别喷我,请教一下

    19 条回复    2015-11-12 21:01:13 +08:00
    pupboss
        1
    pupboss  
       2015-11-12 02:03:46 +08:00 via iPhone
    如果你的网站用 https ,用 //就自动加 https 协议头
    cxbig
        2
    cxbig  
       2015-11-12 02:04:32 +08:00
    最好是写全了,避免跨站攻击之类的问题。
    DIYgod
        3
    DIYgod  
       2015-11-12 02:07:50 +08:00
    @cxbig 求解释
    vibrance
        4
    vibrance  
    OP
       2015-11-12 02:14:29 +08:00 via iPhone
    adsense 广告里面 js 的引用就是直接是 //开头, v2 的也是
    sneezry
        5
    sneezry  
       2015-11-12 02:15:45 +08:00 via Android
    //是与引用页面协议保持一致
    cxbig
        6
    cxbig  
       2015-11-12 02:16:52 +08:00
    用 /是个偷懒的办法,可以自适应 http 和 https ,也可以自适应域名。
    但是现在已经不够安全了,你搜一下“ Man-on-the-side attack ”。
    zonghua
        7
    zonghua  
       2015-11-12 02:16:55 +08:00 via iPhone
    @sneezry 相对路径的问题呢,有的相对,有的绝对
    msg7086
        8
    msg7086  
       2015-11-12 06:53:17 +08:00
    比较麻烦的是万一你打开的是个本地或者局域网页面,用 //可能会把你带到局域网里去。
    ( Opera 就有这个问题,开一次得假死半天
    binux
        9
    binux  
       2015-11-12 07:44:26 +08:00
    @cxbig 什么乱七八糟的,你们说的是一个东西吗?
    Slienc7
        10
    Slienc7  
       2015-11-12 08:02:21 +08:00 via Android
    @cxbig
    是 //,不是 /
    自适应域名是指什么?

    没理解你说的这个 Man on side 是什么意思。
    wikipedia 上给的例子是百度流量被劫持攻击 GitHub 的例子,这个是 HTTP 劫持,然而 wikipedia 上又说类似中间人,能否大概说下?
    Slienc7
        11
    Slienc7  
       2015-11-12 08:06:37 +08:00 via Android
    @xgowex
    抱歉,我看错了。

    可还是有疑问:这种攻击与 http 流量劫持有什么不同?
    likexian
        12
    likexian  
       2015-11-12 08:09:17 +08:00
    // 自适应 http https
    说什么中间人攻击的你还没看懂题主意思吧
    view-source:https://www.baidu.com/
    view-source:https://www.taobao.com/
    vibrance
        13
    vibrance  
    OP
       2015-11-12 10:41:12 +08:00 via iPhone
    我还以为只有我不懂🙄😯😯
    b821025551b
        14
    b821025551b  
       2015-11-12 11:34:28 +08:00
    切换 https 时不用从头改一遍。但是本地调试的时候会变成 file://
    Andy1999
        15
    Andy1999  
       2015-11-12 12:05:43 +08:00 via iPhone
    根据协议来
    http 就是 http 资源
    https 就是 https
    files 就是 files
    HentaiMew
        16
    HentaiMew  
       2015-11-12 12:32:36 +08:00
    本地调试的话其实可以用一些内置或者调用 Http 容器的编辑器,例如 Brackets
    iyaozhen
        17
    iyaozhen  
       2015-11-12 13:16:37 +08:00
    只是为了适应 http 和 https 。一般在引用 CDN 前端库的时候使用。

    不过这样本地直接文件是,就会变成 file://,然后你页面就乱了。
    SourceMan
        18
    SourceMan  
       2015-11-12 13:44:04 +08:00
    The W3C standards might allow for no protocol, but you would never just put "//" - that's part of the protocol ("http://", "https://", "ftp://", etc.). This usage is technically incorrect. It could cause minor issues on some browsers (although probably not on newer ones).
    W3C 标准允许省略协议,但你不应该直接用"//",这只是协议("http://", "https://", "ftp://", 等)的一部分。这中用法从技术的角度来说是不正确的。它在某些浏览器上会有点小问题(经管新版浏览器未必如此)

    Does it matter for SEO? Well, that's a bit trickier. Google tend to ignore base href unless there are ambiguous relative URLs, like canonical tags that have no base URL and are unclear. Practically speaking, it's probably not a huge problem, but it is possible for it to cause issues down the road.
    这对 SEO 有影响么?好吧,有点小纠结。 Google 倾向于忽略 base href ,除非在相对路径上有歧义,比如 canonical 的标签不支持 base href 。实际上,用 base href 现在可能没什么大问题,但也可能在未来引起问题

    Either way, if it's on a sitewide template, it's a 5-minute job, and what they have is wrong. I'm not one to knock devs (I've been a dev and I've managed devs), but they need to stop arguing and just fix it.
    不管这样,如果你的网站用了模板,这就是 5 分钟能修复的问题。我不是那种打击开发的人(我曾经也是一个研发,还管理研发团队),但他们确实需要停止争吵,简单修复一下就行了。
    vibrance
        19
    vibrance  
    OP
       2015-11-12 21:01:13 +08:00 via iPhone
    @SourceMan 好用心回答
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2697 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 13:00 · PVG 21:00 · LAX 06:00 · JFK 09:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.