url中的双斜杠//代表的意义

图片地址:https://upload-images.jianshu.io/upload_images/2849271-0cd2a78eb9e6ceb7.jpeg?imageMogr2/auto-orient/strip|imageView2/2/w/800/format/webp

今天在爬取一个网站的时候,遇到一个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

但是人家问了,肯定不是这么容易

测试后发现

url中的双斜杠//代表的意义_第1张图片

是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:今天进了一个群,真的都是爱技术的一群人,很高兴认识他们,好喜欢这个讨论技术的氛围,同时也收到了一点打击吧,不会的好多啊,还要学~还要学~还要学

 

 

 

你可能感兴趣的:(网络,http,url)