你在浏览器输入一个URL都经历了什么过程

Crq
Crq
Crq
417
文章
0
评论
2024年8月30日01:53:43
评论
10 1398字阅读4分39秒
一:相关概念说明:
 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:客户机接受到断开通知,反馈一个信号(好的),服务器接收到反馈信号断开链接
weinxin
我的微信
这是我的微信扫一扫
Crq
  • 本文由 发表于 2024年8月30日01:53:43
  • 转载请注明:https://www.cncrq.com/10561.html
教你在 Arch Linux 中设置日语环境 Linux教程

教你在 Arch Linux 中设置日语环境

在本教程中,我们将讨论如何在 Arch Linux 中设置日语环境。在其他类 Unix 操作系统中,设置日文布局并不是什么大不了的事情。你可以从设置中轻松选择日文键盘布局。然而,在 Arch Linu...
使用 Vundle 管理 Vim 插件 Linux教程

使用 Vundle 管理 Vim 插件

毋庸置疑,Vim 是一款强大的文本文件处理的通用工具,能够管理系统配置文件和编写代码。通过插件,Vim 可以被拓展出不同层次的功能。通常,所有的插件和附属的配置文件都会存放在 ~/.vim 目录中。由...
在 Linux 中纠正 Bash 命令拼写错误 Linux教程

在 Linux 中纠正 Bash 命令拼写错误

我知道你可以按下向上箭头来调出你运行过的命令,然后使用左/右键移动到拼写错误的单词,并更正拼写错误的单词,最后按回车键再次运行它,对吗?可是等等。还有一种更简单的方法可以纠正 GNU/Linux 中拼...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: