图2
(1) GET请求的URL为“”,使用的协议为HTTP协议版本1.1;
(2)浏览器标识自己(User-)并声明它接受的响应类型(And-);
(3) 标头要求服务器保持此 TCP 连接打开以供后续请求;
(4) 请求还包含域的键值对,用于跟踪不同页面请求之间网站的状态。 因此,存储了登录用户的名称、服务器分配给用户的密码、用户的某些设置等。 ,它们存储在客户端的文本文件中,并针对每个请求发送到服务器。
*可以通过抓包工具查看原始HTTP请求和对应的响应。
*除了GET请求之外,还有一种常见的请求,就是POST请求,通常用于提交表单。 两者的区别在于GET请求不能带body,但可以带url中的参数; POST请求可以带body,在body中携带。 范围。
*URL“”中的斜杠很重要,在这种情况下浏览器可以安全地添加斜杠,但是对于“”这种形式的URL,浏览器无法自动添加斜杠,因为不清楚它是文件夹还是文件夹file ,在这种情况下,浏览器将访问不带斜杠的 URL,并且服务器以重定向进行响应,从而导致不必要的往返。
4. 服务器以永久重定向进行响应。
这是服务器对浏览器请求的响应:
图3
服务器以 301 永久重定向进行响应,该标头告诉浏览器目标地址是“”而不是“”。
*服务器坚持重定向而不是立即响应用户想要查看的网页的原因之一与搜索引擎排名有关,如果同一页面有两个URL,例如“”和“”搜索引擎可能会将它们视为两个不同的站点,传入链接较短的站点将排名较低。 搜索引擎理解重定向(301)并将来自两个来源的传入链接合并到一个排名中; 同样花儿浏览器,多个具有相同内容的 URL 也不会被排名。 有利于缓存,当一段内容有多个名称时,它可能会在缓存中出现多次。
5. 浏览器遵循重定向
现在,浏览器知道“”是正确的 URL,因此它发出另一个 GET 请求:
图4
的含义和第一个请求一样!
6. 服务器“处理”请求
服务器接收 GET 请求,对其进行处理,然后发回响应。
中间过程并不像上面的表达式那么简单:
(1) Web 服务器软件 - Web 服务器接收 HTTP 请求并决定应执行哪个请求处理程序来处理该请求。 请求处理程序是读取请求并生成响应 HTML 的程序。
(2) 请求处理程序 - 请求处理程序读取请求及其参数,并可能更新服务器上存储的一些数据,然后生成 HTML 响应。
7. 服务器发回 HTML 响应
这是服务器生成并发回的响应:
图5
响应内容告诉浏览器:
(1)响应体使用gzip算法进行压缩,解压后可以看到所需的HTML;
(2)Cache-指定是否以及如何缓存该页面;
(3) -Type 头指定正文类型为text/html,字符集编码为utf-8,指示浏览器将响应内容呈现为HTML,而不是作为文件下载。 (浏览器使用各个标头来决定如何解释响应,但也会考虑其他因素,例如 URL 的扩展);
(4) 标头指定过期时间。
8. 浏览器开始渲染HTML页面
*浏览器在收到整个 HTML 文档之前开始渲染网站。
9. 浏览器发送对嵌入 HTML 的对象的请求
*当浏览器渲染HTML时,它会注意到需要获取其他URL的标签,此时浏览器将发送GET请求来检索每个文件。
以下是原作者访问时检索到的一些URL:
图6
这些 URL 中的每一个都将经历类似于 HTML 页面所经历的过程,但与动态页面不同,静态文件允许浏览器缓存它们,并且某些文件可以从缓存中提供而无需联系服务器。 浏览器知道缓存特定文件多长时间,因为该文件返回的响应包含标头。 此外,每个响应还可能包含 ETag 标头,其作用类似于版本号。 如果浏览器看到已经有一个版本的文件ETag,可以立即停止传输。
10. 浏览器发送进一步的异步(AJAX)请求
*即使页面渲染后,客户端仍然与服务器通信。
异步请求是以编程方式构造的 GET 或 POST 请求,该请求发送至特殊 URL; 这种模式有时被称为“AJAX”,它代表“And XML”,意思是“异步和XML”。
标题:浏览器坚持重定向而不是立即响应用户想要查看的网页的原因
链接:https://yqqlyw.com/news/xydt/2377.html
版权:文章转载自网络,如有侵权,请联系删除!