最后更新:2021-10-29 15:52:26 手机定位技术交流文章
在前一个故事中,我们用HTTP协议在极小的环境中进行了两次实验, 利用Wiresark抓痕, 找出HTTP协议的基本程序, 即“ 请求- 回答- 回答” 一对一的模式。
HTTP协议的核心是什么?
广播内容的内容是回应。
HTTP协议在规章文件中详细界定了提交文件的结构,规定了组成部分、解释规则和处理技术,允许在TCP/IP层以上开展更灵活的活动,如连接控制、缓存管理、数据编码、内容磋商等。
您可能熟悉TCP/UDP报告格式,如TCP提交材料,该提交材料将20字头的数据附在拟传输的实际数据上,持有TCP协议所要求的额外信息,如发送方的港口号、接收方的港口号、包装号、路标等等。
软件包可以通过附着的TCP头部成功传送,一旦到达目的地,就可以取回头部,并收到真实数据。

HTTP协议与TCP/UDP相似,因为它需要在实际传输前列入头项数据;然而,与TCP/UDP不同的是,它是一个“纯文本”协议,因此,头项数据是ASCII编码的文本,不使用口译,便很容易用肉眼阅读和理解。
对HTTP协议的请求和答复具有相同的基本形式,包括三个主要部分:
在前导句和电文中,前两条常被称作“请求头”或“回应头”,但“实体”却与“标题”相关,并经常被直接称为“机构”。
HTTP 协议规定,信件包括一个信头,但没有物体, 以及一个“空线 ” 或“ CRLF ”, 跟随信头和十六进制“ 0D0A ” 。
因此,完整 HTTP 报告在下面的图像中看起来是这样的,信头和身体之间有一条空线。

我忍不住想起一个叫"大男孩"和"小爸爸"的动画
据该出版物说,信头代表大男孩的大头,空线代表他的颈部,而后面的尸体代表他的躯体。
看看我们用Wiresark拿的袋子

浏览器发送的请求信件的第1行写着“ GET/ HTTP/1 ”, 请求行是“ GET/ HTTP/1 ”, “ 1” 是请求行, 请求行是“ 主机”、“ 连接 ”, 信头中都有这样的部分, 纸张的结尾是空白行的结尾, 没有身体 。
大部分时间,特别是当浏览器发送 Get 请求时, HTTP 信息含有信头和无体,这相当于发送一个超大头,你可以想象:每天每分钟都有无数头大的人跑来跑去。
然而,这个“大头”并不太大,虽然HTTP协议并不限制信头的大小,但网络服务器不允许大要求的大小,因为大头可能通过转移大量服务器资源而影响业务效率,因此,这个“大头”并不太大,虽然HTTP协议并不限制信头的大小,但网络服务器不允许大要求的大小,因为大头可能会通过转移大量服务器资源而影响业务效率。
在理解HTTP提交书的基本格式之后,让我们看一下请求行,该请求行简要说明客户希望如何使用服务器端资源。
请求项目分为三节:
这三节通常除以一个空格,以通用报告格式线断线结束。

例如,考虑Wiresark抓取数据:
“ 获取” 是此请求行中的请求方法, 而“ /” 是请求对象“ HTTP/1 ” 。 版本号“ 1” 连接了三个部分, 上面写着, “ 嘿, 服务器, 我想在网站根目录下获取默认文件, 我使用的协议号是 1, 1, 1, 请不要使用一个。 或者 2, 0 回答我. 我不知道我该怎么办 ” 。
与其看一看请求行,似乎直截了当,但其中有许多“可能性”,特别是在请求的方法和目标方面,其组合极为不同,我稍后将更详细地讨论。
阅读了请求行之后, 我们查看了答案文件中的第一行, 它不被称为“ 响应线 ”, 而是“ 状态线 ”, 它代表服务器的响应状态 。
状况线比请求线短,分三部分:

看看Wiresark的包里 上一个故事中的状态线:
上面写着"嗨,浏览器",我搞定你的要求了。这个文件的协议号是1。第一,状态代码是200,一切都很好。我不知道我该怎么办。
这是另一个"GET/Favicon" HTTP/1。 以下是响应状态线:
它翻译为“对不起,浏览器,你刚收到你的请求,但我找不到你要找的资源。”错误的代码是404,所以做你下一步需要做的事。我不知道我该怎么办。
在HTTP报告中,地图、请求线或状态线与外地总人才库合并,形成整个请求或回应头。

请求主管和回复主管的结构几乎相同,但起始线除外,因此,我在回复主管中将请求主管与外地合并。
页眉字段为关键值格式,在键和值之间有一个“ : ” 分隔符,并在结尾处有一个 CRLF 线断裂符。例如,在“ 主机 : ” 线条中,键是“ 主机 ”,“ 值” 。
HTTP 信头字段的多功能性足以不仅使用通常的主机、连接等等,而且随机添加自定义信头,使 HTTP 协议具有无限的扩展潜力。
尽管如此,使用信头字段必须注意以下方面:
在实验环境中,我在Lua创建了一个小型服务应用程序,即 " 09-1 ",其效果是输出所有请求。
在实验环境中,您可以尝试将Telnet连接到 OpenResty 服务器,手动传输 HTTP 请求信头,并测试所有正确和错误的信息。
启动 OpenResty 服务器, 然后用 Win+R 键输入命令“ 打开 ww. com. I'm sorry, chrono. Com 80, 连接到 Web 服务器 ” 。

连接连接后,单击 " TRL+ ",然后单击返回按钮输入编辑模式。在此界面中,您可以直接用鼠标右键粘贴文本,然后将数据发送回汽车两次,即模拟 HTTP 请求。
此处显示两个最简单的 HTTP 请求, 第一个在“ : ” 之后有多个空格, 第二个在“ : : ” 之前有空格 :
第一个是成功接收服务器的回复信息, 第二个是接收“ 400 坏请求 ”, 表示请求格式无效, 服务器无法适当处理 :
《HTTP协定》允许大量具有广泛用途的条目字段,但可将其分为四个基本类别:
信头字段的处理(由信头理解)基本上是 HTTP 信息的解析和处理。
在下一个课程中,我将使用应用领域引入连接管理、缓存控制和其他切入点。今天,我们将从一些最基本的头条头条开始,你应该能够读取大部分 HTTP 信息。
第一个是主机字段,它是请求字段,只能存在于请求中。它也是同时唯一一个HTTP/1。 1 在规范中需要出现的字段,即,如果请求中没有主机,就是虚假信息。
主机字段指示主机应该处理该请求的服务器, 当一台计算机容纳许多虚拟主机时, 服务器端必须选择主机字段的服务器, 类似于基本的“ 转向路径 ” 。
例如,在我们的实验环境中,有三个虚拟主机: “ww.org.I'm sorry, chrono. this post is part of our special closes Egyptical sublications 2011.我不知道你在说什么,这是同样的事情。 这是同样的事情,它不是一回事, 它不是一回事, 它不是一回事, 它不是一回事, 它是一回事, 它不是一回事, 它不是一回事, 它是一样的, 它是一样的, 它是一样的, 它是一样的, 它是同一个东西, 它是我们的特别报导的一部分。
请求字段“ 用户代理” 只出现在请求中。 它使用字符串来定义生成 HTTP 请求的客户端, 使服务器能够提供最适合浏览器的页面 。
然而,由于历史原因,用户代理相当混乱,每个浏览器都称自己为“Mozilla”、“Chrome”“Safari”,并试图彼此“mask”,结果用户代理器变得更长,最终变得毫无价值。
然而,某些“诚实的”爬行动物可能会使用用户代理中的“蜘蛛”一词来表明自己是爬行动物,因此可以利用这个领域来执行简单的抗癌措施。
日期字段是答复中通常存在的通用信息,表明 HTTP 电文是何时生成的,客户可利用这一时间与其他数据进行比较,以确定缓存政策。
服务器字段是一个反应字段, 只能在响应信头中存在 。 它告知客户当前提供网络服务的程序的名称和版本号, 例如“ 服务员: 开放/ ”, 在我们的实验环境中, 即 OpenResty 。
服务器字段不必显得像正在开发一样,它暴露了服务器信息的一部分给外部世界,如果该版本出现在错误中,黑客可能会使用错误来攻击服务器。因此,有些网站的答案要么不包含此字段,要么提供完全无关的描述。
例如, GitHub 并没有说明它在服务器字段中是否使用阿帕奇或Nginx, 但显示为“GitHub.

Font-Length 是显示报表正文长度的实体字段之一, 即当服务器看到此字段时, 它会知道有多少数据跟踪并可以立即收到。 如果没有此字段, 则身体模糊不清, 必须以块状方式交付 。
我们今天已经学会了HTTP的结构, 我们将得出一个直截了当的结论。
本文由 在线网速测试 整理编辑,转载请注明出处。