「HTTP 协议」关于HTTP 协议,90%程序员都觉得收藏这篇就够了(2)

前面我们已经讲了目录一和二,没看过的文末有链接,我们接着讲下面的内容,顺便提一嘴,今日破万粉丝啦,需要全套架构师视频的,关注后私信“架构师”即可。

文章目录,方便阅读:

一、概述

二、HTTP 工作过程

三、HTTP 协议基础

四、HTTP 协议报文结构

五、HTTP 报文首部之请求行、状态行

六、HTTP 报文首部之首部字段(重点分析)

七、HTTP 响应状态码(重点分析)

八、HTTP 报文实体

九、与 HTTP 协作的 Web 服务器

「HTTP 协议」关于HTTP 协议,90%程序员都觉得收藏这篇就够了(2)

三、HTTP 协议基础

1.通过请

在这里分享一个小编自己的web前端学习群:688676066,每天晚上20:00我都会开直播给大家分享web前端学习知识和路线方法,群里会不定期更新最新的教程和学习方法(进群送web前端学习教程)关注weixin,v微创文化,大家都是学习web前端的,或是转行,或是大学生,还有工作中想提升自己能力的web党,如果你是正在学习web前端的小伙伴可以加入学习。最后祝所有程序员都能够走上人生巅峰,让代码将梦想照进现实。

求和响应的交换达成通信

应用 HTTP 协议时,必定是一端担任客户端角色,另一端担任服务器端角色。仅从一条通信线路来说,服务器端和客服端的角色是确定的。HTTP 协议规定,请求从客户端发出,最后服务器端响应该请求并返回。换句话说,肯定是先从客户端开始建立通信的,服务器端在没有接收到请求之前不会发送响应。

2.HTTP 是不保存状态的协议

HTTP 是一种无状态协议。协议自身不对请求和响应之间的通信状态进行保存。也就是说在 HTTP 这个级别,协议对于发送过的请求或响应都不做持久化处理。这是为了更快地处理大量事务,确保协议的可伸缩性,而特意把 HTTP 协议设计成如此简单的。

可是随着 Web 的不断发展,我们的很多业务都需要对通信状态进行保存。于是我们引入了 Cookie 技术。有了 Cookie 再用 HTTP 协议通信,就可以管理状态了。

3.使用 Cookie 的状态管理

Cookie 技术通过在请求和响应报文中写入 Cookie 信息来控制客户端的状态。Cookie 会根据从服务器端发送的响应报文内的一个叫做 Set-Cookie 的首部字段信息,通知客户端保存Cookie。当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入 Cookie 值后发送出去。服务器端发现客户端发送过来的 Cookie 后,会去检查究竟是从哪一个客户端发来的连接请求,然后对比服务器上的记录,最后得到之前的状态信息。

「HTTP 协议」关于HTTP 协议,90%程序员都觉得收藏这篇就够了(2)

Cookie 的流程输入图片描述

4.请求 URI 定位资源

HTTP 协议使用 URI 定位互联网上的资源。正是因为 URI 的特定功能,在互联网上任意位置的资源都能访问到。

5.告知服务器意图的 HTTP 方法(HTTP/1.1)

「HTTP 协议」关于HTTP 协议,90%程序员都觉得收藏这篇就够了(2)

HTTP 方法

6.持久连接

HTTP 协议的初始版本中,每进行一个 HTTP 通信都要断开一次 TCP 连接。比如使用浏览器浏览一个包含多张图片的 HTML 页面时,在发送请求访问 HTML 页面资源的同时,也会请求该 HTML 页面里包含的其他资源。因此,每次的请求都会造成无畏的 TCP 连接建立和断开,增加通信量的开销。

为了解决上述 TCP 连接的问题,HTTP/1.1 和部分 HTTP/1.0 想出了持久连接的方法。其特点是,只要任意一端没有明确提出断开连接,则保持 TCP 连接状态。旨在建立一次 TCP 连接后进行多次请求和响应的交互。在 HTTP/1.1 中,所有的连接默认都是持久连接。

7.管线化

持久连接使得多数请求以管线化方式发送成为可能。以前发送请求后需等待并接收到响应,才能发送下一个请求。管线化技术出现后,不用等待亦可发送下一个请求。这样就能做到同时并行发送多个请求,而不需要一个接一个地等待响应了。

比如,当请求一个包含多张图片的 HTML 页面时,与挨个连接相比,用持久连接可以让请求更快结束。而管线化技术要比持久连接速度更快。请求数越多,时间差就越明显。

「HTTP 协议」关于HTTP 协议,90%程序员都觉得收藏这篇就够了(2)

破万粉丝庆祝!今日分享一套架构师视频,价值几何,相信你们也知道。关注后私信“架构师”即可。

四、HTTP 协议报文结构

1.HTTP 报文

用于 HTTP 协议交互的信息被称为 HTTP 报文。请求端(客户端)的 HTTP 报文叫做请求报文;响应端(服务器端)的叫做响应报文。HTTP 报文本身是由多行(用 CR+LF 作换行符)数据构成的字符串文本。

2.HTTP 报文结构

HTTP 报文大致可分为报文首部和报文主体两部分。两者由最初出现的空行(CR+LF)来划分。通常,并不一定有报文主体。如下:

「HTTP 协议」关于HTTP 协议,90%程序员都觉得收藏这篇就够了(2)

2.1请求报文结构

「HTTP 协议」关于HTTP 协议,90%程序员都觉得收藏这篇就够了(2)

请求报文的首部内容由以下数据组成:

·

·请求行 —— 包含用于请求的方法、请求 URI 和 HTTP 版本。

·

·首部字段 —— 包含表示请求的各种条件和属性的各类首部。(通用首部、请求首部、实体首部以及RFC里未定义的首部如 Cookie 等)

请求报文的示例,如下:

「HTTP 协议」关于HTTP 协议,90%程序员都觉得收藏这篇就够了(2)

请求报文示例

2.2响应报文结构

「HTTP 协议」关于HTTP 协议,90%程序员都觉得收藏这篇就够了(2)

响应报文结构

响应报文的首部内容由以下数据组成:

·状态行 —— 包含表明响应结果的状态码、原因短语和 HTTP 版本。

·首部字段 —— 包含表示请求的各种条件和属性的各类首部。(通用首部、响应首部、实体首部以及RFC里未定义的首部如 Cookie 等)

响应报文的示例,如下:

「HTTP 协议」关于HTTP 协议,90%程序员都觉得收藏这篇就够了(2)

五、HTTP 报文首部之请求行、状态行

六、HTTP 报文首部之首部字段(重点分析)

七、HTTP 响应状态码(重点分析)

八、HTTP 报文实体

九、与 HTTP 协作的 Web 服务器

如果先想选择学习前端技术,并且想在这个行业走下去。 1、你要规划好你未来的学习计划。 2、学习前端不要急于求成,一定要一点一点的磨练自己的基础不断的丰满自己打磨自己。 3、要有一个良好的学习氛围。要有一个自己的学习团队,这样大家可以融会贯通.有想交流的可以加QQ群:688676066

写在最后:

很多人都知道我是学全栈的,都天真的以为我有全套的前端、网页制作等视频学习资料。我想说你们是对的,我的确有前端的全套视频资料。

猜你喜欢

转载自blog.csdn.net/qq_40433465/article/details/80432600