网络小结一:浏览器的工作

一、生成HTTP请求消息

在浏览器地址栏输入http://blog.csdn.net/weixin_37882382/article/details/80247228(称为URL统一资源定位符)的时候,浏览器会首先解析这个网址,将其解析为三部分:http协议,web服务器名为 blog.csdn.net,以及访问文件的路径名weixin_37882382/article/details/80247228。

二、DNS

浏览器本身不能发起网络请求操作,而是委托协议栈来完成,委托协议栈时必须要提供接收方的ip地址(事实上,互联网中的通信操作都是ip地址的)。

为什么不用域名呢?可以使用域名,但是不如IP地址高效。一是因为IP地址长度固定,域名长度不固定,处理长度固定的数据肯定比长度不固定的数据效率高,二是因为域名的长度普遍较长,会给网络中的路由器,交换机等设备造成压力。

由域名获得IP地址需要借助DNS服务。DNS服务器中存储了 域名、网络类型(现在主要是互联网),记录类型(A代表IP地址,MX代表邮件服务器),对应的IP地址或者服务器域名。

由于互联网中设备数量众多,世界范围内有数量巨大的DNS服务器。每台DNS服务器中都会存储根域名服务器的地址(固定分配的13个IP地址,但是对应着多台服务器)。根域名服务器中存储着顶级域名服务器的信息,顶级域名服务器中则存储着下级域名服务器的信息,以此类推,域名服务器的结构和 目录的结构类似。

浏览器需要查询IP地址时,会向最近的DNS服务器发送查询请求,如果最近的服务器中有对应域名的IP,则返回给客户端。否则,DNS服务器会现象根域名服务器发送请求,获得顶级域名服务器的地址信息,再向顶级域名服务器发送请求,一级一级的发送请求,直到找到对应域名的IP地址为止。

问题:如果最近的DNS服务器上没有对应域名的信息,则需要从根域名服务器开始,发送多次请求才可以获取到IP地址,如果每次DNS都要发送多次请求无疑会造成网络的负担。所以DNS服务器会将查询到的域名信息缓存一段时间,方便下次查询时使用。一段时间后会丢弃缓存,以达到更新的目的。

DNS使用的是 UDP方式。

三、发送信息

浏览器查询到IP地址之后,便会通过系统的Socket库委托协议栈开始信息的发送。TCP的发送操作为:创建套接字,与服务器的套接字建立连接,发送信息,结束后断开连接;UDP则是不需要建立连接,直接发送和接收






猜你喜欢

转载自blog.csdn.net/weixin_37882382/article/details/80412938
今日推荐