一:相关概念说明:
1.1: DNS(Domain name System)缓存: (域名系统)(查看本机的ipconfig/displaydns)
当电脑把一个域名解析完之后,它把这个这个域名和那个主机Ip地址相关联起来了,电脑吧这个关系存到DNS缓存表中,下次电脑再输入www.baidu.com的时候,电脑通过查找DNS缓存,就可以知道这个域名对应的IP地址了,不再进行域名解析了,提高了效率
1.2: ip地址:
ip地址对应好像门牌号,我们通过这个地址可以找到主机的位置
1.3:域名:(domain name):
Ip地址是4个数字,用顿号隔开,这个东西不好记,我们一般用字母搭配数字的方式使用比如.www.baidu.com.,Ip地址和域名不是一一对应的,一个域名可以绑定多个IP,但在同一时刻一个域名只能解析成一个Ip地址(这个活由我们的DNS帮我们完成)
二:相关请求大致流程
1:浏览器根据域名解析出来Ip地址
2:浏览器根据IP地址进行Socket通信
3:浏览器和客户端进行通信,浏览器请求,服务器接收请求
4:浏览器和服务器断开链接
三:具体的流程
3.1:查找过程
1:浏览器先从自己DNS表中查找看有没有.www.baidu.com(对应的IP地址)
2:从操作系统中的DNS表中查找(维护域名和ip地址对应关系的一张表)
3:从操作系统host文件夹中查找
4:操作系统将域名发送到LDNS(本地区域域名系统),比如我在工大,那么LDNS服务器就在 我们学校, 查找DNS缓存,继续失败的话发送一个迭代的DNS解析请求.
4.1:LDNS向Root name server(根域名服务器,存储每个域名的域),Root name Server返回com域的顶级域名服务器地址
4.2:LDNS向com顶级域名服务器发送请求,返回www.bai.com域名服务器的地址
4.3:LDNS向www.baidu.com域名服务器发送请求,得到www.baidu.com的ip地址
5:LDNS得到Ip地址返给操作系统,并把这个iP地址缓存到DNS表中
6:操作系统将地址返给浏览器.同时也将IP地址缓存起来
7:现在浏览器已经得到了Ip地址
3.2:建立连接(三次握手)(采用TCP协议)
知道了百度的Ip地址,接下来是三次握手的实现连接
1:客户机向服务器发送建立连接请求(你好,很高兴认识你)
2:服务器接到请求后发送同意连接请求(好的,很高兴认识你)
3:客户机接收到服务器同意请求后,再次向服务器发送确认信号(我也很高兴认识你),自此主机和服务器两个建立连接
3.3:网页请求和显示
建立连接之后,那么服务器和客户机之间就会进行通讯
3.1:客户机浏览器根据IP地址生成Http请求,请求包含文件的位置,请求的方式
3.2:服务器接收到http请求内容决定如何获取相应的HTML文件
3.3:服务器将相应的HTML文件发送给浏览器
3.4: 浏览器还没完全接收HTML文件的时候,开始渲染,显示网页
3.5:根据html代码,继续请求图片,
3.4:断开过程(四次挥手过程)
1:客户机向服务器发送一个断开的请求(不早了,我该走了)
2:服务器接受到请求发送确认请求的信号(知道了)
3:服务器向客户端发送断开通知(我也该走了)
4:客户机接受到断开通知,反馈一个信号(好的),服务器接收到反馈信号断开链接