输入网址访问一个网站的全过程分析
2017-02-13 11:31
513 查看
1.查询缓存,一般浏览器会把访问过的网站信息保存一段时间
2.缓存里查找dns,如果没有则发送到路由去寻找,再没有则向isp寻找(改动了这个DNS服务器,你的浏览器跳转到他们设定的页面上,这也就是人尽皆知的DNS和HTTP劫持)(这个过程统称dns)
3.多说一句,例如"mp3.baidu.com",域名先是解析出这是个.com的域名,然后跑到管理.com域名的服务器上进行进一步查询,然后是.baidu,最后是mp3,
所以域名结构为:三级域名.二级域名.一级域名。
4.浏览器终于得到了IP以后,浏览器接着给这个IP的服务器发送了一个http请求,方式为get,例如访问hupu.com
5. 得到ip地址简历tcp连接
在TCP协议中,建立TCP需要与百度服务器握手三次,你先告诉服务器你要给服务器发东西(SYN),服务器应答你并告诉你它也要给你发东西(SYN、ACK),然后你应答服务器(ACK),总共来回了3次,称为3次握手。
6.不过,建立TCP连接有个前提(或者说给服务器发消息有个前提):你必须能成功地把消息发到服务器上。虽然已经知道IP,但并无啥用(比如说,你在广东,你知道北京的地理坐标经纬度就能到北京了?你得知道有哪些路通往北京吧你得准备盘缠吧你得花时间吧)。
为了将消息从你的PC上传到服务器上,需要用到IP协议、ARP协议和OSPF协议。
我们都知道,你的PC和百度服务器之间一般会有许多路由器之类的东西,IP协议指定了出发地(你的PC)和目的地(服务器);你的数据会经过一个又一个路由器,OSPF决定了会经过那些路由器(用一种叫路由算法的玩意,找出最佳路径);从一个路由器怎么传给下一个路由器?这是ARP协议的JOB,ARP负责求下一个节点的地址(我们不止是要目的地,还要中间节点的地址)。
IP协议使用的是IP地址,整个发送过程中只涉及出发地和目的地2个IP地址,而ARP协议使用的是MAC地址,整个发送过程中涉及到每一个节点的MAP地址
7.现在,我们能和服务器通信,还建立了TCP连接,下一步干嘛,当然是用HTTP协议请求网页内容咯。你发个HTTP请求报文给服务器,如果服务器禁止你访问它就给你回个"Forbidden",如果它暂时挂掉了就给你回个“内部服务错误”,如果它正常才给你回个“OK“并将你要的数据传给你;如果你还需要其它的东西再去跟它要(它一般还会给你的-_-)。
8.你收到了服务器的回复,是一坨HTML形式的文本。浏览器必须要能够理解文本的内容,并快速地渲染到屏幕上(浏览器一般用有限自动机来理解文本内容,渲染的话就各看本事了,之所以微软IE卡成狗而谷歌浏览器很6,就是它们的渲染速度不同...)渲染出来后,你就看到百度的首页了
9.当然,中间省略了负载均衡的一步,这个脑补就可以了
2.缓存里查找dns,如果没有则发送到路由去寻找,再没有则向isp寻找(改动了这个DNS服务器,你的浏览器跳转到他们设定的页面上,这也就是人尽皆知的DNS和HTTP劫持)(这个过程统称dns)
3.多说一句,例如"mp3.baidu.com",域名先是解析出这是个.com的域名,然后跑到管理.com域名的服务器上进行进一步查询,然后是.baidu,最后是mp3,
所以域名结构为:三级域名.二级域名.一级域名。
4.浏览器终于得到了IP以后,浏览器接着给这个IP的服务器发送了一个http请求,方式为get,例如访问hupu.com
5. 得到ip地址简历tcp连接
在TCP协议中,建立TCP需要与百度服务器握手三次,你先告诉服务器你要给服务器发东西(SYN),服务器应答你并告诉你它也要给你发东西(SYN、ACK),然后你应答服务器(ACK),总共来回了3次,称为3次握手。
6.不过,建立TCP连接有个前提(或者说给服务器发消息有个前提):你必须能成功地把消息发到服务器上。虽然已经知道IP,但并无啥用(比如说,你在广东,你知道北京的地理坐标经纬度就能到北京了?你得知道有哪些路通往北京吧你得准备盘缠吧你得花时间吧)。
为了将消息从你的PC上传到服务器上,需要用到IP协议、ARP协议和OSPF协议。
我们都知道,你的PC和百度服务器之间一般会有许多路由器之类的东西,IP协议指定了出发地(你的PC)和目的地(服务器);你的数据会经过一个又一个路由器,OSPF决定了会经过那些路由器(用一种叫路由算法的玩意,找出最佳路径);从一个路由器怎么传给下一个路由器?这是ARP协议的JOB,ARP负责求下一个节点的地址(我们不止是要目的地,还要中间节点的地址)。
IP协议使用的是IP地址,整个发送过程中只涉及出发地和目的地2个IP地址,而ARP协议使用的是MAC地址,整个发送过程中涉及到每一个节点的MAP地址
7.现在,我们能和服务器通信,还建立了TCP连接,下一步干嘛,当然是用HTTP协议请求网页内容咯。你发个HTTP请求报文给服务器,如果服务器禁止你访问它就给你回个"Forbidden",如果它暂时挂掉了就给你回个“内部服务错误”,如果它正常才给你回个“OK“并将你要的数据传给你;如果你还需要其它的东西再去跟它要(它一般还会给你的-_-)。
8.你收到了服务器的回复,是一坨HTML形式的文本。浏览器必须要能够理解文本的内容,并快速地渲染到屏幕上(浏览器一般用有限自动机来理解文本内容,渲染的话就各看本事了,之所以微软IE卡成狗而谷歌浏览器很6,就是它们的渲染速度不同...)渲染出来后,你就看到百度的首页了
9.当然,中间省略了负载均衡的一步,这个脑补就可以了
相关文章推荐
- 学生A希望访问网站www.ss.edu.cn,用户A在其浏览器中输入http://www.ss.edu.cn并按回车,直到西亚斯的网站首页显示在其浏览器中,请问:在此过程中,按照TCP/IP参考模型,
- 面试问题系列:从输入网址到显示网页的全过程分析
- 从输入网址到显示网页的全过程分析
- 【学习笔记】浏览器输入一个网址回车后的全过程
- 从输入网址到显示网页的全过程分析[转]
- 从输入网址到显示网页的全过程分析
- 从输入网址到显示网页的全过程分析
- 从输入网址到显示网页的过程分析(转载)
- 从输入网址到显示网页的全过程分析
- 从输入网址到显示网页的全过程分析
- 在浏览器中简单输入一个网址,解密其后发生的一切(http请求的详细过程)
- 从输入网址到显示网页的全过程分析【转】
- 本地IIS发布网站后如何输入网址访问网站
- 从输入网址到显示网页的全过程分析
- 从输入域名到访问网站的过程
- 从输入网址到显示网页的过程分析
- 在浏览器中简单输入一个网址,解密其后发生的一切(http请求的详细过程)
- 客户网站访问慢分析和排查过程
- 用户用浏览器访问一个网站的时候具体的过程与步骤
- 从输入网址到显示网页的全过程分析