美工统筹SEO,为企业电子商务营销助力!
用 // 取代 http:// 有甚么益处(自顺应https)
一佰互联网站开辟设想(www.taishanly.com) 宣布日期 2020-04-22 10:10:31 阅读数: 134
//缺省和谈
/缺省和谈的利用,代表资本拜候的和谈和以后页面坚持分歧,若是以后页面是http ,接纳http和谈拜候,若是是https,则利用 https 和谈拜候。如许用就不论是http仍是进级到https都不必修改代码,此刻良多CDN资本都是如许援用。通俗利用在内链中,外链的和谈头具有不必定性的缘由。
//的寄义?
//是缺省和谈的写法,比方
//jb51.net/css/
缺省和谈默许利用以后和谈
以后页面为HTTP时,等效
http://jb51.net/css/
以后页面为HTTPS时,等效
http://jb51.net/css/
利用 // 取代 http:// 的前提和益处?
以后页面和方针资本同时撑持HTTP和HTTPS正在从http进级到https
如许的益处便是能按照用户翻开页面的体例自顺应的挑选资本的要求和谈,
对https页面的内容,阅读器默许会构造非https内容,能够避免这类环境
// 毛病谬误
间接翻开本地文件调试时,利用的和谈是文件和谈(file://)
这个时辰这个和谈会变成 file://jb51.net/css/较着是不存在的
与以后网站的和谈坚持分歧,疾速宣布与你以后和谈相婚配的版本,同时削减SSL或别的和谈版本的安排本钱。开辟者不须要管办事器云端供给甚么和谈,只需用//标记来代表统统最顺应的婚配,这和nodeJS的思惟是一脉相承的。
长处以下:
由于良多网站都将http进级为https,如许就能够避免咱们的网址被挟制,后期为了在转换进程中我出过失咱们不强迫跳转,便是当用户拜候http或https都能够通俗拜候,那末外面的js,图片,链接等都不能用https或http,那末有甚么处理体例呢,那末处理体例来了便是用//,不要带http:与https如许就能够了。
//这类写法是按照你要求的和谈主动增添和谈的。举个栗子:你的网站是http和谈,那末实在你拜候的便是http://xxxx 若是你的网站是https和谈的,那末要求的地点会变成http://xxxx 要晓得,若是你写成了http://xxx. 那末若是你们的网站线上是https,那末能够会报宁静正告,有的阅读器乃至没法通俗加载页面。若是你间接写成https,要晓得,本地开辟可是http啊...
上面的内容是来自知乎的一些典范答复
益处良多人都答过了。进级 https 固然最能感触感染到这类益处。我只是补充一个为甚么后人不这么写的来由。固然,确切有良多前端并不晓得这类写法。不过,就算晓得也很能够没法这么写。由于 UC 阅读器的良多较早版本不撑持这类写法,会把 //a.b/ 间接懂得为 /a.b/,也便是说,若是你在 http://example.com 的页面里写了 //example-cdn.net/static-file 的地点,UC 现实拜候的是 http://example.com/example-cdn.net/static-file 。UC 曩昔的市占率大师是晓得的。以是……
一看你就没做过「全站 HTTPS 进级革新」。我给全站做 HTTPS 进级的时辰,真的想把写 http:// 的人砍死。特别是数据库里的链接和 JS 里拼接出来的 url。时代用了各类正则,还要野生核对。何如写 http:// 的法式员太多,只能作罢。有人还在批评里问缘由,缘由便是若是你全写 //,我就不必革新数据库里的数据和源码了,间接进级 https 就好了。你能够会说 https 革新这类任务很少产生吧,巧了,我在腾讯和阿里都碰到了 https 革新 ಥ_ಥ 并且在阿里的时辰我要担任 1688 整站(个体部分自行革新)的前端代码革新(不可是 HTML,另有 CSS 、JS、Velocity 模板等!的确便是脏活累活,我 TM 为甚么要接这个活儿),你猜我骂写 http:// 的人骂了几多次?有的前端还间接在 JS 里写 http,相沿一下以后页面的和谈你会死啊?
另有的前端用正则判定 url 时竟然只接管 http:// 和 http:// 不接管 //,真的是没知识。太多法式员,太智障了。也有能够是由于他们没传闻过 HTTPS 罢了。若是你还不懂,我就问你几个题目:若是你用 http:// ,那你便是默许以后页面是 http 和谈了,你一个前端凭甚么决议以后页面的和谈?莫非你不晓得 http 链接在 https 页面里会报错啊?你应当相沿以后页面的和谈,以是你要写 //若是你用 http://,也是一样的题目,你怎样晓得三年后会不会呈现一个 httpshe://,莫非到时辰你再全数改成 httpshe:// ?不要做任何较着是毛病的假定!你底子就不晓得以后页面会用甚么和谈翻开!以是你要用 // 啊!近似的毛病假定另有良多,比方良多中国法式员都感觉德律风号码只含数字和括号,不含字母。真的是如许吗?
有人说全局替换不就完了吗?举例申明吧,假定淘宝要进级 https因而你将 http:// 全数替换成 //第一个 bug:你把 <a href="http://tmail.com"> 替换成了 <a href="//tmail.com"> ,可是那时 http://tmail.com 还不撑持 https因而你将必然规模内的域名替换,http://(taobao|taobao2|taobao3).com 替换成 //$1.com第二个 bug:有些 JS 是如许写的 url = "http://" + location.hostname + "/" + path,另有写 JS 是如许写的 /^http:///.test(input)。你说这个就没法用正则了,在一切 JS 里全局搜刮 http 而后野生检查吧。你晓得淘宝有几多 JS 文件吗…… 并且这些文件是缓存十年的……就算你改了,也不必然能更新。并且一旦你改错了,影响用户下单,马云丧失一个亿你赔得起吗?第三个 bug:有些数据底子就不在代码里,在数据库里,比方 user.image 的值是 http 开首的。因而你将 user.image 写成 user.image.replace("http://", "//") 或你间接改数据库里的数据(当数据量很大的时辰,这根基是不能够的)第四个 bug:你忘了改 nginx、crossdomain 外面的域名第五个 bug:你忘了改设置装备摆设体系外面的 base_url第六个 bug:你的 https 页面嵌入了一个内部的 http iframe……你就哭吧,这很难处理,命运好间接改成 // (内部撑持 https 便可),命运不好就要改页面逻辑了。第 N 个 bug……HTTPS 进级便是脏活累活,你说简略你来做,你起头做就晓得连累的处一切几多了。最好的计划仍是把和谈做成很轻易变革的体例,比方遵守以后页面,或用变量,归正写死 http:// 必定不好。有些法式员写代码的时辰,明显晓得有 HTTPS 却不去兼容,心思想着「归正我在这个公司呆两年就走了,HTTPS 最少另有三年呢」而后就写出了渣滓代码。
愈来愈多的开辟者,在链接文件时,接纳//来取代http://,即如< a href="http://jb51.net……通俗写为 < a href = " //http://jb51.net……,这与传统带http有甚么区分?
本来你的网站是http的,一切的src都是 http开首,感觉受到狗屎经营商大批挟制,在你的页面塞了一大堆少儿不宜/和纯真告白的内容的时辰,有人告知你替换https能够改良这个题目,那末这个时辰你就晓得 之前的src和ajax写得//而不是http://是此刻何等理智的决议。。。
逐浪CMS官方
跟着愈来愈多开源和云平台的出现和SSL和谈的普遍导入(如逐浪CMS已周全启用了SSL和谈撑持),人们在停止开辟时不得不面临http和谈的挑选和辨认。尽人皆知,过量的ssl援用,能够会形成通俗站点的效力低下,但咱们不能为此再去从头设想一个纯SSL版本。表此刻开源库上,通俗平台都同时供给SSL版和非SSL版。如这两个库:https://code.z01.com/js/jquery-3.2.1.slim.min.jshttp://code.z01.com/js/jquery-3.2.1.slim.min.js其援用结果是分歧的。因而开辟者们间接用"//网址/文件"体例来替换后面的和谈,使之主动辨认。即详细是SSL和谈仍是通俗http和谈,交给阅读器去主动辨认并主动与以后站点婚配,从而完成最好的宁静要求和最高效的加载体例。概言之,这是一种开辟体例和开辟思惟,云计较的web与挪动开辟日趋强大。
上一篇: 引入css的四种体例总结(分享) | 下一篇:浅谈雅虎前端优化的35条军规