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

admin7个月前笔记57

一:相关概念说明:

 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:客户机接受到断开通知,反馈一个信号(好的),服务器接收到反馈信号断开链接


相关文章

MySQL延迟问题和数据刷盘

MySQL延迟问题和数据刷盘

一、MySQL复制流程官方文档流程如下:MySQL延迟问题和数据刷盘策略1、绝对的延时,相对的同步2、纯写操作,线上标准配置下,从库压力大于主库,最起码从库有relaylog的写入。二、MySQL延迟...

Linux开机启动那些你不知道的事

Introduction开机启动过程分为以下6个步骤,分别是BIOS, MBR, GRUB, Kernel, Init, RunLevel, RunDefinitionBIOS按下电源开关那一刻,开始...

为什么 Llama 2 比 ChatGPT 更好

为什么 Llama 2 比 ChatGPT 更好

在开源语言模型领域,Llama 2 已成为强有力的竞争者。Llama 2 由 Meta(以前统称为Facebook)开发,与同类产品 ChatGPT 相比具有多方面的优势。本博客将深入探讨L...

Docker与DevOps的结合:实现自动化监控和日志管理

Docker与DevOps的结合:实现自动化监控和日志管理

1.引言1.1 概念和背景软件开发和运维领域,Docker和DevOps是两个备受关注的重要概念。了解这两个概念的背景和意义对于理解如何将它们结合起来实现自动化、监控和日志管理至关重要。Docker的...

简单介绍 chown 命令

Linux 系统上的每个文件和目录均由某个人拥有,拥有者可以完全控制更改或删除他们拥有的文件。除了有一个拥有用户外,文件还有一个拥有组。你可以使用 ls -l 命令查看文件的所有权...

列出所有的 Bash Shell 内置命令

列出所有的 Bash Shell 内置命令

shell 内置命令就是一个命令或一个函数,从 shell 中调用,它直接在 shell 中执行。 bash shell 直接执行该命令而无需调用其他程序。你可以使用 help 命令查看 Bash 内...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。