(1).浏览器输入URL 跳转 之后 浏览器 会先判断 这个 链接(URL)是否 需要 重定向(Redirect),需要就会跳转到 重定向页面,不需要的话就进入下一步。
(2).判断是否需要重定向之后 浏览器会判断 这个 访问的 链接 是否 有缓存(之前访问过)。有缓存 直接 从 缓存 取数据,没有缓存则 进入下一步。
(3).做完前面 两步 之后 这个时候 浏览器 就会 开始 真正的 发送请求,发送请求 第一步 就是 域名解析,由于我们 输入 的URL 只是域名,所以浏览器还需要 利用 DNS 解析 域名,解析完成之后 得到 服务器IP 地址 再进行访问。
(4).创建链接 这个 时候 需要 与 服务器 进行 3次握手,如果是https 请求的 话,由于需要做安全机制,所以会和http创建的方式不一样。
(5).握手完成之后,开始 发送 真正的 request请求
(6).服务器 接收到 请求 做出相应的 处理 再 返回 一个 响应(数据)response 给 客户端
两次握手:
-
第一次握手:主机A发送位码为SYN=1的TCP包给服务器,并且随机产生一个作为确认号(这是tcp包的一部分),主机B收到SYN码后直到A要求建立连接;
-
第二次握手:主机B收到请求后,向A发送确认号(主机A的seq+1),syn=1,seq = 随机数 的TCP包;