ArkUI的Web组件,其API体系非常壮大,Web组件API涉及100+, WebviewController接口涉及100+。 其中有大量接口涉及到Http协议的各项环节把控。可以说,如果不了解Http协议,您大概率学不动这个控件。尽管可以实现简单的需求, 但是想要往性能上拔高就比较困难。所以我打算讲这个控件前,先进行基础铺垫。先讲HTTP协议。
Web组件,即:一个客户端的浏览器。而且其最广泛的用途正是展示一个网站,一个网页。一个网页实质上是用一个HTML文档和一系列代码描述的。 浏览器拿到这些文件可以解析。 浏览器传输这些文件,使用的正是HTTP协议。
本文重点是用图来表示HTTP协议中的内容都有什么。
什么是HTTP协议
http(HyperText Transfer Protocol)汉语译为超文本传输协议。是互联网应用最广泛的一种网络协议。所有的www文件都必须遵守这个标准。设计http最初的目的就是为了提供一种发布和接受html页面的方法。后来就用于各种客户端数据请求中了。这个协议非常常用。我们本文学习的是:
- http数据包的内容组成部分。
- http每个内容组成部分的构建规则。
- http每个组成部分最常用的一些值,或者方法,各代表什么意思。
HTTP数据包里都有什么
HTTP的报文分为两类
- 请求报文: 由请求行 + 请求头 + 空行 + 请求体 四部分组成。
- 响应报文: 由状态行 + 响应头 + 空行 + 响应体 四部分组成。
这两类的报文组成部分有部分是相同的有部分是不同的,如图所示。

通过上图可以知道, 我们抽丝剥茧,学习各部分构建的规则,以及各个具体值代表什么意思,基本就掌握这个协议了。
请求报文
如下图,请求报文是由四个部分组成的,为
| 请求行 |
请求头 |
空行 |
请求体 |
Http最简单的请求报文,和四大部分的分布。如下图所示:

请求行
请求行是报文的第一行内容,用于定义请求的基本意图以及资源目标。包含三部分
- 请求方法, 表明意图。
- URI: 表示请求的资源是什么。URI作为统一资源标识符,可以指定资源目标的路径,可以包含查询的参数,如 /search?q=hello
- 协议版本号: 声明使用http版本,用来决定协议的特性。
请求行是整个http请求报文的起始点,以CRLF(\r\n)为结束。其结构划分为:

方法
我们重点讲讲请求行里面的方法。它是HTTP请求包的第一个组成部分,也是请求行的第一个部分,用来表明请求资源的意图。其中方法可以为以下的几种:
| 方法 |
说明 |
对应的报文规则 |
| GET |
获取资源 |
链接要求: GET方法的请求参数必须包含在URL中, 文章最开始就是一个GET请求的内容 |
| 请求头要求:可包含Accept, If-Modifiedl-Since等缓存控制字段 |
||
| 请求体要求:不可以有! |
||
| POST |
传输实体主体,提交数据 |
链接要求:可以加参数也可以不加,不加参数可以写在请求体中。 |
| 请求头要求:
|
||
| 请求体要求:必须包含请求体 |
||
| PUT |
|
链接要求: URL一定要制定具体的资源,需要被定位! |
| 请求头要求: 可以不做要求。 |
||

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



