输入网址回车后发生的过程

总过程

在这里插入图片描述

DNS解析

当我们输入一个网址的时候,这个网址例如www.baidu.com,我们需要知道这个网址其实是一个主机名需要通过映射关系根据主机名获取IP地址。这个映射关系可以称为DNS。

DNS系统结构的3个最大的特点

  • 分布式
  • 树状
  • 授权解释

参考链接:https://www.jianshu.com/p/6e2ef8bc1edf

获取IP地址的途径

  • 浏览器

浏览器会将我们近一段时间访问的主机名及对应的IP地址进行缓存,缓存时间与浏览器有关,在该缓存时间内,我们输入同样的主机名就可以快速从浏览器缓存区获取IP地址并建立连接。

  • Host文件

当浏览器的缓存不存在我们想要的IP地址时,系统会查找C盘下的一个system32内的Host文件,该文件会记录我们常用的主机名及IP地址对应关系

  • 路由上的DNS缓存

路由器会缓存主机名及IP地址对应关系

  • 查找为我们提供网络服务的服务商的DNS服务器

如电信、联通网络服务商等

建立TCP连接

TCP连接

发送HTTP请求

请求的方式是GET和POST两种。GET请求是从服务器获取数据,然后讲其加到?之后作为参数返回给服务器来获取数据,而POST请求则是讲请求内容加到请求体中,并经过编码压缩交给服务器。通常GET请求可以用于获取轻量级的数据,而POST请求的内容数据量比较庞大些。

由于服务器上的带宽限制,有时候在进行数据获取与返回的时候,需要使用缓存、预取、并行、压缩等方式来进行,有利于大大提高数据获取的效率。

数据完成请求到返回的过程之后,根据Keep-alive属性可以选择是否断开连接HTTP/1.1一般支持同一个TCP多个请求,而不是1.0版本下的完成一次请求就发生断开。TCP的断开与连接不一样,断开可以分为主动关闭和被动关闭,可以经过4次握手。

服务器处理请求

服务器接收到获取请求,然后处理并返回一个响应。返回状态码200 OK,表示服务器可以响应请求,返回报文,由于在报头中Content-type为“text/html”,浏览器以HTML形式呈现,而不是下载文件。

浏览器渲染画面

在浏览器没有完整接受全部HTML文档时,它就已经开始显示这个页面了,浏览器接收到返回的数据包,根据浏览器的渲染机制对相应的数据进行渲染。渲染后的数据,进行相应的页面呈现和脚步的交互。

渲染过程

  • 解析DOM Tree
  • 解析CSS Tree
  • 把DOM+CSS Tree布局绘制到屏幕
  • 解析JS

浏览器的渲染原理:https://coolshell.cn/articles/9666.html

关闭TCP连接

关于四次挥手的详细过程参考:https://blog.csdn.net/qq_43313035/article/details/89065433

猜你喜欢

转载自blog.csdn.net/qq_43313035/article/details/89224054
今日推荐