从浏览器打开http://www.baidu.com地址回车发送请求到看到页面的过程?

一、整体过程

1.将域名解析成ip的过程;

2.通过ip找到网站服务器,请求打开具体的网页,服务器响应请求,客户端浏览器收到响应报文后,渲染html文档,最终看到网页页面。

二、原理

1.dns解析的流程?

(1)输入网址回车的时候,浏览器首先查询浏览器的缓存,如果没找到就去查询本地的dns缓存和hosts文件,如果有www.baidu.com这个域名对应的ip,则直接通过这个ip访问网站服务器;

(2)如果本地的dns缓存和hosts文件没找到,这时候就会把请求发送给根域名服务器

(3)根域名服务器,没有记录具体的域名和ip地址的对应关系,而是告诉本地DNS服务器,你可以到域服务器上去继续查询,并给出域服务器   .com的地址。

(4)向.com域服务器发出请求,.com域服务器收到请求之后,也不会直接返回域名和IP地址的对应关系,而是告诉本地DNS服务器,域名(www.baidu.com)的解析服务器的地址。

  (5) 向域名的解析服务器发出请求,这时就能收到一个域名和IP地址对应关系,本地DNS服务器不仅要把IP地址返回给用户电脑,还要把这个对应关系保存在缓存中,以备下次别的用户查询时,可以直接返回结果,加快网络访问。

三、tcp的三次握手和四次挥手?

因为http是工作在第七层应用层,tcp是工作在第四层传输层,所以发生http请求之前,还会进行tcp的三次握手。

1.tcp的三次握手是?

(1)客户端首先向服务器发送一个带有SYN标识和一个seq的随机数

(2)服务端收到后,需要给客户端回应一个ack,ack的值就是刚才的seq随机数的值+1,在回应包里,还包含一个SYN的标识一个seq随机数

(3)客户端收到服务端发过来的回应包之后,再给服务端发送一个ack,ack的值就是刚才服务端发过来的seq的值+1。三次握手完成。下面就可以开始发送http请求报文了,进行传输数据。

2.tcp的四次挥手?

当浏览器加载一个完整的页面时,还需要与服务器断开连接,这个过程就是tcp的四次挥手。

(1)首先客户端会发送一个带有FIN标识和一个seq随机数

(2)服务端收到之后,会回应一个ack,ack的值等于刚才的seq的值+1;

(3)发送之后,服务器会再发一个FIN包,这个包里面包含一个seq随机数和第二次返回到客户端的ack值。

(4)客户端收到之后,回应一个ack,ack的值等于刚才的seq值+1,以上完成之后,服务器和客户端的4次挥手就完成了!

 

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值