今天在爬取一个网站的时候,遇到一个img标签 src是//upload-images.jianshu.io/upload_images/2849271-0cd2a78eb9e6ceb7.jpeg?imageMogr2/auto-orient/strip|imageView2/2/w/800/format/webp
这种以//开头的。我当时就很不理解,没见过//开头的
经过测试,这种//开头的写法,就是表示网址的开头,比如 //www.baidu,com 会转换为 https://www.baidu.com
当然如果不支持https协议就是 http://www.baidu.com了
//是网络路径引用的意思
然后一个群里大佬考了我这样一个问题
那么问题来了如果是本地的 html,以 file:// 打开的,会是什么情况
我当时第一感觉就和上面一样,还是认为是补充的http和https
但是人家问了,肯定不是这么容易
测试后发现
是file协议的/图片访问失败了
得到的结果是,网络协议补充http或https
file文件协议,就是补充file协议,
如果https协议可以访问,优先补充https协议,不成功就是http协议了,这个由浏览器决定
补充:群里大佬指点【JAVA里的sendRedirect就用的这种参数】
查资料,资料连接:https://www.zhihu.com/question/37063799/answer/70242462
这篇文章解释了为什么是三斜杠的原因了,因为file没有host
到这里你应该明白双斜杠//怎么用了,简单说就是使用http协议和https协议
如果你想深入研究的话
可以查询以下几个知识点
uri scheme
URI,URL,Uri
http协议和https协议
PS:今天进了一个群,真的都是爱技术的一群人,很高兴认识他们,好喜欢这个讨论技术的氛围,同时也收到了一点打击吧,不会的好多啊,还要学~还要学~还要学