URL与浏览器的那些事儿
2017-12-06 本文已影响0人
毅冷锋
不会起名的标题
- 曾几何时,在网吧阴暗的角落里,疯子我一边眼神往四周瞟着,另一边手指飞快的输入了一个网址,回车键按下的那刻,我眼神就紧盯着屏幕,过了几秒,没反应;咦,卡了么?等等看吧;咦,怎么出错了?我又看了下地址,对呀,不错啊,不死心的我又输了一遍,TM的怎么还不行?那这一夜可怎么过?这网站真不靠谱,算了玩玩游戏,睡会吧。
- 时间飞逝,疯子已经不是当年的疯子了,也已经知道了N个网址了,再也不会出现无网可用的尴尬局面了,更牛逼的是疯子现在学习了若愚老师课件,知道了当年那桩惨案的真正原因了,疯子一定要写下来,骂人是不对的,但是骂对人总是对的——疯子语录
- 今天我们就来唠唠URL那些事
============================
你懂你的网址(URL)是什么意思么?
- 首先我们常见的URL是由以下几个部分组成
1.1、协议类型:[//服务器地址[:端口号]][/资源层级UNIX文件路径]文件名[?查询][#片段ID];
1.2、协议类型:[//[访问资源需要的凭证信息@]服务器地址[:端口号]][/资源层级UNIX文件路径]文件名[?查询][#片段ID]
3、其中,访问资源所需要的凭证信息@和端口号一般都是省略的
4、?查询、#片段ID都是选填的 - 用我们听得最多的百度一下你就知道来举例:
http://www.baidu.com
1、http就是传送协议,常见的协议有http,https(加密协议),file(本地url)
2、//层级URL的标记符号,固定不变,一般没有http:的URL就代表此URL的协议和当前页面协议一致
3、www可以说是域名前缀吧,现在的浏览器默认加不加www都是一样的,因为会定向,所以说可以不用考虑这个
4、baidu.com才是真正意义上的域名,可以说一个域名有多个IP地址,而一个IP只能对应一个域名
浏览器怎么理解URL(以baidu.com为例)
- 浏览器在接收到baidu.com这个URL的时候,会先解析出域名是baidu.com
- 然后它会根据域名badi.com查找其对应的IP
1、首先它会先从自身的缓存记录中找寻,因为如果最近打开过,那它会缓存下这个记录,他就会根据记录找到这个IP;
2、如果它发现自身没有这个记录,它会向系统缓存文件host里查询记录,因为系统文件host里会记录一些域名和IP;
3、这时如果还没找到,它就会再次向路由器缓存里请求查询;
4、然后它发现,这个域名你不常用啊,那就找DNS问问吧,毕竟DNS作为分布式数据库,见多识广,总该认识吧;
5、可是,悲剧的它发现,这个域名真心是不知道哪个旮旯里钻出来的,DNS竟然也不认识,无奈,它只有求教域名登记中心,根服务器了;
6、终于在根服务器里一番搜寻,它最终找到了这个才刚注册还没什么人用的域名还有其对应的IP了 - 浏览器找到IP之后,就找到了这个IP对应的web服务器
web服务器这时接收到浏览器关于baidu.com的请求了,它会:
1、将请求提交给IP对应的网站
2、它发现自己是个转接服务器,将请求转给下个web服务器 - web服务器将请求交给网站后:
1、网站后台路由会将指令交给控制器(controller),由控制器来决定如何回应
2、控制器接收到指令后,会先向数据库的管理者-模型(model),来索要数据
3、模型接到指令后,立马从数据库调取数据,然后将数据交给控制器
4、控制器拿到数据后,就找到了视图(view),说你看人家要这个,你赶紧弄出来吧,等着呢。
5、视图不敢怠慢,立马给了控制器一份html字符串说,都在这呢
6、控制器又赶紧将这份html字符集交给了浏览器 - 浏览器拿到这份html字符串后,发现,咦,编码,得,解码吧,这难不倒我
1、首先它发现这里面有link标签,得,再去要一个css手册吧
2、它又发现里面有img标签信息,哦还有图片呢哈,我再看看还有啥,一块拿回来吧
3、然后它发现了需要执行的js的标签script
4、终于什么都齐了,我来拼拼吧,算算css和html,就是这样的,总算弄好了 - 浏览器弄好的页面展示给用户看
注意
- dns如果被劫持,那么你得到的页面就不是本来你想看到的页面,要注意防劫持
- 某些网站打不开,可能是域名或者IP被封了哦,要注意分辨,可不要乱骂哈,毕竟浏览器也不容易,网站也不容易
写在最后
本文仅供参考,大神勿喷