- 查询 DNS
-
- 浏览器搜索自身的DNS缓存
- 搜索操作系统的DNS缓存,本地host文件查询
- 如果 DNS 服务器和我们的主机在同一个子网内,系统会按照下面的 ARP 过程对 DNS 服务器进行 ARP查询
- 如果 DNS 服务器和我们的主机在不同的子网,系统会按照下面的 ARP 过程对默认网关进行查询
-
浏览器获得域名对应的IP地址后,发起HTTP三次握手
-
TCP/IP连接建立起来后,浏览器就可以向服务器发送HTTP请求了
-
TLS 握手
- 客户端发送一个
ClientHello
消息到服务器端,消息中同时包含了它的 Transport Layer Security (TLS) 版本,可用的加密算法和压缩算法。 - 服务器端向客户端返回一个
ServerHello
消息,消息中包含了服务器端的TLS版本,服务器所选择的加密和压缩算法,以及数字证书认证机构(Certificate Authority,缩写 CA)签发的服务器公开证书,证书中包含了公钥。客户端会使用这个公钥加密接下来的握手过程,直到协商生成一个新的对称密钥 - 客户端根据自己的信任CA列表,验证服务器端的证书是否可信。如果认为可信,客户端会生成一串伪随机数,使用服务器的公钥加密它。这串随机数会被用于生成新的对称密钥
- 服务器端使用自己的私钥解密上面提到的随机数,然后使用这串随机数生成自己的对称主密钥
- 客户端发送一个
Finished
消息给服务器端,使用对称密钥加密这次通讯的一个散列值 - 服务器端生成自己的 hash 值,然后解密客户端发送来的信息,检查这两个值是否对应。如果对应,就向客户端发送一个
Finished
消息,也使用协商好的对称密钥加密 - 从现在开始,接下来整个 TLS 会话都使用对称秘钥进行加密,传输应用层(HTTP)内容
- 客户端发送一个
-
HTTP 服务器请求处理
HTTPD(HTTP Daemon)在服务器端处理请求/响应。最常见的 HTTPD 有 Linux 上常用的 Apache 和 nginx,以及 Windows 上的 IIS。
-
HTTPD 接收请求
-
-
服务器把请求拆分为以下几个参数:
HTTP 请求方法(
GET
,POST
,HEAD
,PUT
,DELETE
,CONNECT
,OPTIONS
, 或者TRACE
)。直接在地址栏中输入 URL 这种情况下,使用的是 GET 方法域名:google.com请求路径/页面:/ (我们没有请求google.com下的指定的页面,因此 / 是默认的路径)
-
-
服务器验证其上已经配置了 google.com 的虚拟主机
-
服务器验证 google.com 接受 GET 方法
-
服务器验证该用户可以使用 GET 方法(根据 IP 地址,身份信息等)
-
如果服务器安装了 URL 重写模块(例如 Apache 的 mod_rewrite 和 IIS 的 URL Rewrite),服务器会尝试匹配重写规则,如果匹配上的话,服务器会按照规则重写这个请求
-
服务器根据请求信息获取相应的响应内容,这种情况下由于访问路径是 "/" ,会访问首页文件(你可以重写这个规则,但是这个是最常用的)。
-
服务器会使用指定的处理程序分析处理这个文件,假如 Google 使用 PHP,服务器会使用 PHP 解析 index 文件,并捕获输出,把 PHP 的输出结果返回给请求者
-
-
服务器接受到这个请求,根据路径参数,经过后端的一些处理生成HTML页面代码返回给浏览器
-
浏览器拿到完整的HTML页面代码开始解析和渲染,如果遇到引用的外部js,CSS,图片等静态资源,它们同样也是一个个的HTTP请求,都需要经过上面的步骤
-
浏览器根据拿到的资源对页面进行渲染,最终把一个完整的页面呈现给用户
简述 :
- 浏览器查询DNS,获取域名对应的IP地址:具体过程包括浏览器搜索自身的DNS缓存、搜索操作系统的DNS缓存、读取本地的Host文件和向本地DNS服务器进行查询等。对于向本地DNS服务器进行查询,如果要查询的域名包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析;如果要查询的域名不由本地DNS服务器区域解析,但该服务器已经缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析。如果本地域名服务器并未缓存该网址映射关系,那么将根据其设置发起递归查询或迭代查询。
- 浏览器获得域名对应的IP地址后,浏览器向服务器请求建立连接,发起三次握手
- TCP/IP连接建立起来后,浏览器向服务器发送HTTP请求
- 服务器接收到这个请求,根据路径参数映射到特定的请求处理器进行处理,并将处理结果返回给浏览器
- 浏览器根据请求到的资源,最终向用户呈现一个完整的页面
原文链接:https://blog.csdn.net/N1neDing/article/details/80861323