目录

一、URL解析

二、DNS解析

三、TCP三次握手

四、发起HTTPS等请求

五、服务器处理响应

六、TCP四次挥手


一、URL解析

首先浏览器会先判断你的URL合不合法,有两种情况:合法 不合法

不合法:

1.不正规的网站:

比如带点颜色的网站,浏览器会直接把你拦着,显示这个网站不安全,不能跳转

2.网址输入错误:

比如说https你输入成htp,就不会直接跳转到你要的网页

合法:

首先会查询浏览器的记录,看看你的URL是不是你搜过的,然后显示一些搜索记录。

合法但是不完整的网址,浏览器会帮你补全前缀或者后缀,比如你搜索www.baidu.com它会自动帮你补上前缀https://。

二、DNS解析

我们的域名www.baidu.com,其实不能被浏览器解析,因为它相当于一个别名,只是辅助我们记忆的。

因为他的ip地址http://36.152.44.95/index.html,这个地址你要记得话很难,所以我们的DNS就帮我们解析了,通过映射对应起来域名和ip地址。

DNS解析流程如下:

我们的客户端先会在浏览器DNS缓存查找,操作系统DNS缓存,本地host文件找。

如果在这些本地都找不到,就会去本地DNS服务器查找,先是服务器缓存。

没有就去根DNS服务器(分配com、cn、org等等后缀去哪儿的服务器),因为根服务器等级太高了,就说顶级域DNS服务器(相当于都存com后缀的服务器的)是我小弟,你去找他吧。

然后你去找了顶级域DNS服务器,他说我等级也高,你去找我小弟权威DNS服务器(baidu.com有后缀和域名的)就找到了,然后缓存到本地DNS服务器,然后本地DNS服务器返回给客户端

三、TCP三次握手

这个也就是跟服务器建立连接的过程(详情请看我另一篇博客:图片炸场!TCP协议黑话全解:从20字节头到十大杀器,看完秒变三次握手老司机!-CSDN博客

三次握手(建立连接):

  1. A给B发了个SYN包,表示 “我A想要和你B建立连接” ,
  2. B收到SYN后,就会返回一个ACK,之后再返回一个SYN,表示“我B想和你A建立连接”,(A收到ACK说明,A认为A与B已经建立了连接,但是B认为B与A还没建立连接)
  3. A收到了SYN之后,返回一个ACK,表示“我收到你的请求,同意连接”,此时A与B双方完全建立了连接

因为三次握手中间的SYN和ACK可以合并一起发送,所以本来是四次握手的,就变成了三次握手。

类似于你跟你朋友说话:

  1. 你要和他开始对话
  2. 然后他同意和你聊天
  3. 你知道他准备跟你聊天之后

四、发起HTTPS等请求

 现在一般是HTTPS请求了,也就是HTTP的基础上再加了一层加密。实际内容还是HTTP,我们只举这种做例子。

我们先对要传输的明文 (内容)进行对称加密,变成密文

然后申请CA证书,把网站的一些信息给CA机构,申请到CA证书。

服务器发带有CA机构进行私钥加密的数字签名的证书,发给客户端,客户端校验一下是不是安全的,是安全就继续通信,被篡改就提示不安全。

验证证书是否合法,然后进行通信。

看不懂?无所谓,详细的HTTPS加密流程在我另一篇博客:HTTP:裸聊,HTTPS:戴套聊天,但中间人还是想偷看!-CSDN博客 

五、服务器处理响应

服务器收到HTTP的客户端请求一个HTML后,就开始做出响应。 (以谷歌浏览器为例):

  1. 服务器将发布一个HTML的响应,里面有响应头和HTML正文
  2. 处理HTML,并构建DOM树
  3. 处理CSS,并构建CSSDOM树
  4. 将DOM树和CSSDOM树合并在一起
  5. 根据根据渲染树来布局。并计算出几何信息
  6. 将各个节点渲染到屏幕上

六、TCP四次挥手

现在浏览器为了优化请求时间,会在关闭标签页之后再进行四次挥手。

四次挥手就是安全的再见。

可以理解为你跟你朋友准备说拜拜了:

比如两个人打王者,A说我下了,B说知道了,我再打几局等会下。A说ok,后来B也要走了,就说我也要下了,A就说知道了。

具体详情请看博文:图片炸场!TCP协议黑话全解:从20字节头到十大杀器,看完秒变三次握手老司机!-CSDN博客

当TCP四次挥手后,这次的请求就完成了,结束了。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐