最后更新:2021-11-26 07:28:33 手机定位技术交流文章
来源包括刘先生的《谈话网络协议》和陶惠先生描述和捕捉的《网络协议》,以及位于硅谷的JavaWeb先生,
超文本传输协议 超文本传输协议 我们要将HTTP置于它的头上
协议
语法、语义和秩序不是一回事
之后的构成又是一个基本组成。 这是一个困难的情况。 沟通不简单吗? 在设计前端时, 与前端有一个像样的界面是有道理的 。
传输
转移是什么意思 转移超文本是什么意思
HTTP 传输的属性是什么?
当然,Google试图取代基于民联QUIC的HTTP,
超文本
这是我的最爱。 什么是超文本? 把它拆开, 并检查什么构成文本。 在普通人眼中, 文本只是笔记本中的文字。 在计算机眼中, 文本是二进制的。 在计算机眼中, 文本毕竟是二进制的, 它是二进制的 。 “ 二进制的 ” 。 生活中没有二进制的事物。 生活中没有二进制的, 但是如果你把某种东西放进电脑里, 生活中有某种东西放进电脑里。 例如, 生活中有一个视图, 你拍下来, 照片底部是二进制的数据, 视频, 音频.. 太多。
所以,再次,文本是一个简单的字符文本。关于超文本文本呢?它是一个文本,但它是字符文本。“超级”表示它超越了常规文本, 被安排在各种文档中, 比如图片。Jpg, 音频.mp3, 视频.mp4, 它们也打开了笔记本上的字符, 但是它们有其他的打开方式, 所以它们被称为超文本。
超文本——超链接——也有一些极其重要的内容,如果在相关设想中适当处理的话,目前似乎没有什么可说的。
小结
HTTP究竟指的是什么?它指的是在计算机网络中发送文本、图像、音频、视频等所使用的协议和规格。
为了讨论一个问题, 我们审视 HTTP 的属性, 首先从最初是什么, 以及除了定义之外还有什么。
以下是七大最显著的HTTP特征:
由于HTTP以TCP为基础,是TCP参考传输,因此它显然可靠。
这应该是HTTP超级文本传输能力,因为像FTP这样的常规应用级协议只能传输文件,SMTP只能发送邮件,SSH只能远程登录,在数据传输中比HTTP少。
HTTP 要求电文“ 进进出出” 真正连接到互联网结构, 现在互联网、 C- S 和 B- S 更传统结构, 其通信与 HTTP 应用层无法区分 。
让我们首先界定国家。 一个国家是一个标志,表明信息的变化在整个通信过程中都有记录,例如TCP, 0-CLED, 2-ESTABLISED。
那么,为什么HTTP没有地位? 因为它只懂得如何发送数据,而别无其他内容。 在数据发送后,有一个请求是类似“ 继续隐藏你的信用和名称 ” 。 说起来, UDP有点熟悉, 但是HTTP仍然是目标, 因为HTTP是连接的, 而UDP是连接的, 而UDP是互不连接和未申报的, 只是在港口丢弃它, 不论IP是正确还是不正确 。
被"否认"有什么好处?
服务器缺少“ 集合能力 ”, 不需要额外的资源来记录状态信息, 这不仅是为了更容易, 也是为了减轻服务器的负荷, 并允许服务器使用更多的 CPU 和内存来提供外部服务 。
此外,“无状态”意味着服务器是完全相同的,也没有“状态”差别,因此可以简单构建一个组群,在组群中,负载平衡器向任何一个服务器提出运输请求,而没有因不一致的状态而造成处理不当,并使用“装货机”的“脑力方法”实现容易的高可用率和高可用率。
因此,什么是"无罪"的邪恶?
由于服务器缺乏“ 模拟能力 ”, 它无法处理一个“ 商业” 行动, 需要多个连续阶段。 例如, 电子购物, 首先登录, 然后添加购物车, 然后开账单、结算和支付, 一系列活动需要用户身份识别, 但“ 无害” 服务器并没有意识到这些请求是相关的, 并且必须每次都要求身份信息, 这不仅不方便, 而且还增加了 u
这个功能基本上是HTTP报告的结构, 报告之后只对线条和头条的格式作出说明。 HTTP协议的主要组成部分的每个方面,例如请求方法、 URI、状态代码、理由短语、第一个字段等等,都没有“写成死亡”,使开发商能够随意修改、扩展或解释,提供最高程度的信心和自由度的浏览器和服务器,并且符合 HTTP 协议。
一个显著的例子是用于“不跟踪”的标头字段DNT(Do not track),它最初由Mozilla提出,目的是保护用户隐私,防止网站监测跟踪用户偏好。 不幸的是,尽管DNT自建立以来已有约七八年时间,但许多网站仍然选择“ignore” DNT。While DNT大部分都失败了,这也表明HTTP协议是“灵活和自由的”,不会被压制。
HTTP对“可靠传输”的定义中也说明了“灵活、易于伸缩”的方面,该定义不仅使用TCP、UNIX Dome Socket,而且还使用SSL/TLS, 甚至以UDP为基础的QUIC, 不仅限制具体的次级协议,而且不仅使用TCP、UNIX Dome Socket, 甚至使用SSL/TLS, 甚至可以在上层语义保持稳定时随时改变。
“ 明确” 表示协议的内容( 具体地说, 标题部分) 并不使用二元数据, 而是直截了当的可读文本形式 。
与TCP或UDP等二进制协议相比,其优点显而易见,可以直接用肉眼阅读或改变,而不用任何其他工具,如浏览器、Wiresark或tcpdump抓痕,这些工具将大大改善我们调试的发展。
当然,同样显而易见的是,HTTP报告中包含的所有信息都会暴露在“全天候”之下,在长传输链的任何时刻都没有隐私,加入链条中特定装置的坏角色,只是“绕过”交通,就能发现对话。
安全的若干特征在“机密性”方面显然是一个不利因素,正如HTTP在“识别”和“完整性核查”两方面都是一样。
在现实生活中,你最好拥有身份证、驾照或带有照片和印章的护照,但这是虚拟互联网世界中的一个问题。 HTTP没有提供确定来文双方真实身份的有效手段。 虽然协议中有一个基本的认证机制,但由于刚才提到的明示传输的缺点,这一机制几乎可以说是“无纸”的,而且很容易被打破。如果只使用HTTP协议,你可能会被连接到一个相同的网页上,但是一个假网站,然后“钓鱼”远离各种个人信息。
HTTP 协议也无法“ 完全核查 ”, 数据在传输过程中可能很容易被修改, 无法验证。 比如, 假设你收到了来自HTTP 以上银行的报告 : “ Ming 转账了100美元给您 ”, 你无法知道Ming是否真的只发送了100美元。 也许他存了1 00美元或50美元, 但他被黑了,改成了100美元, HTTP 协议无法给你解释 。
虽然银行可以使用MD5和SHA1算法在提交材料中添加数字摘要,但“明确”的致命缺陷允许黑客用摘要编辑数字摘要,使得无法确定它们是否被篡改。
我们稍后将讨论的HTTP, 已经存在,以补救 HTTP 脆弱性的问题。

建立连接需要三握手。
请求报文的格式:

Http 1. 1 是一个版本 。
这有点奇怪,我们稍后再讨论
Get post put puttlete 头部是一个常见的技术。
未广泛使用的一些方法包括:
Get、POST、DELETE、HEAD是众所周知而且经常使用的命令;然而,看PUT是令人困惑的。
PUT
其目的在于将最新内容上传到提供的资源地址。 但是,由于HTTP服务器通常不允许上传文件,PUT和POST都被转换为传递到服务器的方法。
URL
让我们看看 URL 。 您发现请求了吗? 它不在 URL 中, 它去了哪里? 在 HIST 领域 。
再说一遍,没有 URL,但还有一个斜线。有什么意义呢?让我们看看这个。

这里出事了 赔率是11比1 如果你仔细看一看 它就在 URL里
事实上,所要求的域名总是列在清单的首位。HOST字段,剩下的/xxx/xxx事实上,资源路径维持在请求线上,如果是请求,请求参数也在请求线上;POST请求参数在请求体中。?参数位于后面,在后面提到。&换句话说,请求包含两个参数,其中一个参数是:a=1,一个是b=2

这一切都是关键到力量, 除了几个例外:
接受: 指定客户端可以理解 mime 类型 。
text/html,application/xhtml+xml,application/xml;,意味着您可以每类获得一种以上的产品。,拔除设备。 这是正确的答案 。Content-Type;
接受编码:客户所接受的字符编码,通常采用压缩技术等压缩技术。gzip, deflate, br,同样不同类型用,把它分开 和解决办法吻合Content-Encoding;
接受- Chharset : 与回答头匹配的客户可接受字符集Content-Type;
接受语言:客户理解的一种自然语言。zh-CN,zh,这里对应响应头的Content-Language;
Center- Type: 与文本的格式有关, 例如 :application/json; charset=UTF-8,这个最常用。
缓存控制:当客户发送包含最大值命令的请求时,如果确定缓存中资源的时间少于所提供时间的价值,客户可以接受缓存资源;如果最大值被指定为0,缓存通常必须将请求传送到应用程序集定义分子:当客户发送包含最大值命令的请求时,如果确定缓存中资源的时间少于所提供时间的价值,客户可以接受缓存资源;如果最大值被指定为0,缓存通常必须将请求传送到应用程序集。

让我们看看还有什么更值得注意的, 比如下面这个“接受”字段, Q = 0 behind. 9,q =0。什么是8?
这是内容磋商的质量值, q 表示“ 质量系数”, 最高为1, 最低为0.01, 默认为1, 用来表达重量的重要性, 称为语法 。q = 值; 数据类型或语言代码比如上面的意思 我希望这是最优先的事项text/html,application/xhtml+xml,application/xml;q=0.9或者application/signed-exchange;v=b3;q=0.9因为他们的总重是零九分
这很容易被逗号误导, 但逗号在ABNF语法中的含义意味着ABNF的逗号与分号的使用方式与我们相同。
HTTP1.1 反应报告格式:

HTTP 1. 1 1 是版本号 。
状态代码的目的是以代码的形式传达服务器处理请求的结果,该代码经常与结论中的“合理响应”短语一起使用。
短路:与原因单词“确定”和“未找到”有关。
状态代码是这里最重要的项目。让我们看看状态代码。
现行《中转公司标准地位代码》为三位数,从00到99不等,但这一数字并不大。

让我们看看标准状态代码。
2xx
最常见的200 OK这是一个惊人的成功。每次你看到它, 它给你一种舒适的感觉。
还有一个是204 No Content这是成功的,尽管没有答复;
从零星的发行或整段下载中可以看到,206 Partial Content这表明可用于作出反应的资源并非全部,而只是其中的一部分。
3xx
301 Moved Permanently这表明资源确实没有,因此建议将下列请求重新挂钩。
302 Found注释只在有限的时间内有效。
4xx
400 Bad Request客户报告要求有问题;
403 Forbidden这一点特别重要,因为这不是一个客户特有的问题,因为服务器出于各种原因,包括信息敏感性、法律禁令以及我在结论前后日期转换过程中发现的问题,不允许你访问服务器,原因如下:
还有经典的404 Not Found我们无法获得资源的原因太多,我希望有时间总结一下。我看到最常见的问题是请求地址拼错。哈哈!
5xx
最常见的是500 Internal Server Error这完全是服务器的问题
还有一个503 Service Unavailable这通常表明服务器超载。 我暂时不能和你聊天, 但我会回来的。
所有关键值的密钥对格式
Concent- Ecent 编码: 将响应编码的过程, 例如gzip
Center-Type: 通知客户真正返回的材料类型, 例如 。text/html; charset=UTF-8
重试后: 通知客户再次尝试需要多长时间 。
在现实中,有两种更频繁的发送大案卷的方法:
HTTP 表示数据压缩和文件部分。
文章中描述的字段包括所需的“接受编码”字段,其中载有浏览器所接受的压缩格式列表,例如 gzip、 deflate、b 等,以便服务器可以选择压缩技术,从中将原始数据放入Concent-Encoding 响应头,然后将其放入浏览器。
本案的压缩数据一般是照片和视听材料等文本文件,这些文件已经压缩,而且不适当。
压缩多媒体数据的工作将在以后特别结合流媒体协议进行。
HTTP 中的数据块被称为块块, 在回复报告顶部将有一个 。Transfer-Encoding:chunked这意味着,适当的数据并非全部同时提供,而是以一系列文件形式提供。
除了主观使用外,在传输不确定长度数据时,Chunk通常被称为“流利数据”。Content-Length由于无法具体说明确切的长度,因此也使用 " 黑猩猩 " 进行沟通。Transfer-Encoding:chunked与Content-Length只有一个相互参照的字段。
长度为 16 长, 数据和长度与 CRLF( 广称为 rn) 完成 。 然后观察区块的末端, 使用 0 长度来标记区块的尾端 。

您有没有想过, 如果视频进度栏拖动, 如何请求数据?
网络服务器根据用户需求增加了一个功能——范围请求。
为了满足这种必要性,HTTP协议允许客户应请求使用。Accept-Ranges:bytes设置一条信息, 告诉客户端支持范围请求 。Accept-Ranges:node就是不支持。
HTTP的实现是通过偏转完成的,我还不明白,所以我们从那里开始吧。
提出范围请求实际上是一种块状传输的优化,具有若干好处:
我不知道你在问什么 我晚点再查
范围请求,每次一个段落,实际上不止一个段落,并查看下图:

我们省下一个坑 以后再回来查更多信息
http1. http1. before one, it's short
首先,首先考虑基本的短路和长线。 由于HTTP建立在TCP上,它必须经过三次握手和四次挥手,这样就不可能有短暂的联系。 在生命中,很难有一个短暂的关系。

要启动很长的连接, HTTP1. 1 是一个默认值, 但可以在请求中指定 。Connection:keep-alive如果你不展示开张,那与开张无关,好吗?
当连接关闭时,此字段大部分被使用,也就是说,当该字段被设定为Connection:close通知服务器此对话框后将终止连接。 服务器还将在返回信件中添加字段 。
除非有特定技术,否则服务器通常不会自由关闭连接。 您可以在这里看到两种Nginx技术:
- 设置“ kepepalive_ timeout” 命令, 以建立长期连接连接的超时, 并在没有长期连接数据的情况下自愿断开连接, 防止闲置连接使用系统资源 。
- 指定使用“keepalive_ requests” 指令在很长的连接中发送的最大请求数量。如果设置为 100, 例如, Nginx 将在此连接处理100 个请求时中断连接 。
当我们谈论“请求-回复”字符时,我们的意思是 HTTP 信息必须是“ 一对一 ”, 因而容易被阻塞。 最简单的解决方案是建立许多线索,但如果用户众多,用户数量* 将是天文,这会炸掉服务器。
因此,存在一个服务器端解决方案,这是一个众所周知的多基金会分割技术,稍后将在 DNS 中深入探讨。 主要策略是让许多域名指向同一个主域名。
以后将公布更多详情。
爪哇网络开发工作已经对这一基本机制进行了审查,其中有两个插图:


让我们看看前方传输的特征 与方向转换。
我们主要对重定向使用方案感兴趣
以前经常使用两种形式的再定向:301个永久再定向和302个临时再定向。
首先,使用再定向有两个典型原因:
有太多的情况 资源没有, 域名更改, 服务器更改.. 列表继续。
为避免重复,网站大多使用许多类似的域名,随后在到达主站时,这些域名被转到主站。
你什么时候用号码301和302?
301的最典型使用是搜索引擎优化(SEO),旧的 URL 可能因为更改域名而过时,将服务器移动到新的机房,重新设计网络目录..并且必须提醒浏览器和搜索引擎更新到新地址。
302中最常用的情景一般是故障维护时间,或11项“服务退化”的2倍。 11项“服务退化”暂时转移了流动,与魏援赵技术相当相似。
调整方向有两个主要问题:
首先看看饼干的使用。
这将用于两个领域:对信头字段的响应和对回应回应的响应,对响应回应的响应,对回应的响应,对回应的响应,对回应的响应,对回应的响应,对回应的响应,对回应的响应,对回应的响应,对回应的响应Set-Cookie和请求头字段Cookie。
服务器在第一次通过浏览器到达服务器时一定不知道用户的身份。 因此, 以“ Key=value” 格式创建了独特的识别数据, 然后在 Set- Cookie 字段中设置, 并连同回复信息一起传送到浏览器 。
浏览器收到了回复信息, 并在其中找到了 Set- Cookie, 了解这是服务器的标识, 并存储了它, 自动将其放置在 Cookie 字段中, 并在下次请求时将其发送到服务器 。
由于第二次请求中的Cookie字段,服务器理解用户不是新人,而以前是来生成Cookie值、识别用户并随后提供量身定制的服务。

Cookie有两个特点:
;这就是不同领域的不同之处。JavaWeb 创建的属性图表, 用于向 JavaWeb 学习 :

还有一些其他安全特征:
SameSite=StrictCookie可以小心地 限制在不传送 与空间站的跳跃连接。SameSite=Lax允许安全技术,如Get/HEAD, 但不是POST在站前。更常见的是“身份识别”, 这是网站的登录密码, 通常在Seasion, 真正是Cookie, 稍后可以讨论。
另一个是广告追踪器, 设计它是一个经常监视器, 你一定在互联网上看到过很多广告照片, 这些照片得到广告商网站(如谷歌)的支持, 他们准备在你的电脑上“偷吃”饼干, 以便其他广告可以在 Cookie 中读取你的身份, 然后进行行为分析, 然后将你推上广告。
由于这些饼干没有保存在访问的主要网站,它们被称为“第三方饼干 ” 。 如果销售商实力强大,广告到处都是,它们就更“可怕 ”, 无论你走到哪里,他们都通过Cookiei和广告“精密罢工”了解你。
会话、 会话、 底端是通过 Cookie 完成的, 如以下两个图像所示 :


2.0的特性:
HTTP 1.1 应用层中的通信以纯文本形式进行,每份通信都包含完整的 HTTP 信头,用于描述资源属性,不过,第一节中可能存在相同的描述字段,重复可能会损害性能。
为解决这些问题, HTTP 2. 0将在某种程度上压缩 HTTP 头部,在两端建立一个索引表,仅按同一头部编制索引。
HTTP2定义了请求和答复的初始部分。 0 数字实际上保持不变, 但所有第一个键必须缩小, 线条必须独立, 如: 方法 : 、 方案 : 主机 : 路径 : 这些密钥对 。

HTTP 2. 0 将所有传输信息分为较小的信息和框架,然后以二元格式编码如下:
HTTP2. 在共享TCP连接的基础上,请求和答复可以同时根据二进制基质传递。
HTTP 2. 0 将TCP连接到多个流中,每个流中都有自己的身份,流动可能从客户到服务,或从服务到客户。
这只是一条虚构的路线
HTTP 消息被分割成单个框架, 不影响信件的语义学 。 这些框架可以随机传输, 然后根据每个框架起始处的流量标识重新组合 。
通过将 HTTP 信息分割成许多不同的框架,通过优化这些框架的摇摆和传输顺序,可以进一步改进性能。
每个溪流的优先级为31比特,0是最高优先级,2是最低优先级。
客户端明确指定优先级,服务端可以根据这个优先级作为交互数据的依据,比如客户端优先设置为.css>.js>.jpg。服务端按此顺序返回结果更加有利于高效利用底层连接,提高用户体验。然而,在使用请求优先级时应注意服务端是否支持请求优先级,是否会引起队首阻塞问题,比如高优先级的慢响应请求会阻塞其他资源的交互。
如果使用 HTTP 1 是一个字符串, 1 则使用 HTTP 2 。 0, 客户端和服务可以同时提交许多请求或答复, 而不相继进行一对一匹配 。

HTTP 2. 0 将三个请求分为三个流, 将数据分为一个框架, 并以随机顺序将其传送到 TCP 连接断裂处 。 0 将三个请求分为三个流, 将数据分为一个框架, 并以随机顺序将其发送到 TCP 连接 。

由于HTTP 2.Also基于TCP协议, TCP协议在包件处理中严格排序。 当一个数据包有问题时, TCP连接必须等到软件包重新传输。 虽然 HTTP 2.0 Via 多个流流, 以前的TCP连接的逻辑平行内容通过多条线路广播, 但基于 TCP 协议的中线 HTTP 2.Also 没有相关数据, TCP协议在包件处理中严格排序。 当一个数据包有问题时, TCP连接必须等到软件包重新传输。 虽然 HTTP 2.0 Via 多个流, 以前的TCP连接的逻辑平行内容通过多条线路广播, 但中间没有相关数据 。
根据联合民主党协议,快速联合民主党互联网协商提议以四个关键机制取代TCP, 将TCP作为HTTP/3数据传输层协议:
众所周知, TCP 连接是由来源 IP 、 源端端、 目的地 IP 和目的端口的四倍组合定义的。 当这些要素之一发生变化时,必须终止并重建连接。
当手机信号变得不可靠或被转移到WIFI和移动互联的移动网络时,就会导致重新连接,导致三次握手和延迟。
TCP没有办法,但根据UDP,你可以将连接机制保留在QUIC自己的逻辑中,不再由四位数组指定,而是随机使用64位数的ID,而UDP是断开的,因此,在IP或端口改变时,只要ID保持不变,则无需重新连接。
TCP 耗时抽样中存在错误。 QUIC 中还包括一个递增序列号。 序列号为100的A包只发送一次, 下一个是添加的。 例如, 发送序列号为100的包件, 发现没有返回; 再发送一次, 序列号为101; 如果 ACK 100 返回, 是第一个包的响应。 如果 ACK 101 返回, 是第二个包的响应 。
QUIC是连接的,是一个数据流,类似于TCP, 传输的数据具有偏转效应,可以观察到数据投送地点,只要该软件包没有运到,就会重新发行;如果运到,它可能仍然被合并成一个数据流。

2. 然而,QUIC以UDP为基础,多个流之间在连接上没有依赖关系。 因此,如果流2失去了UDP包,继而在流3中又失去了UDP软件包,尽管需要重新传送第2组软件包,但可以在不等待的情况下向用户提供第3组软件包。
另一方面,QUIC窗口适合其自身的多常规再利用方法,不仅调节连接窗口,而且调节连接中每个流控窗口,以告知最终可接受的字节。
记得吗? TCP 接收窗口的起始点是下一个接收和ACK的软件包,即使后一个软件包出现,但窗口也不能向右移动,因为 TCPACack 机制是基于序列号的累积响应, 一旦 ACK 机制基于序列号的累积响应, 它表示,只要前线不在那里,背面不在那里, 只要前线不在那里, 背面也在那里, ACK 就会在那里, 并且有可能在时间和浪费中重复它
QUIC ACK 以 Exfset 为基础, 每一袋 Exfset 都到达一个缓存中, 回答它, 回答它, 不重新发行它, 中间槽等待它或重复它, 窗口从目前收到的最大 Exfset 开始, 而从此 Exfset 到当前串流的最大缓存是真实的窗口大小 。

HTTP协议尽管普遍和复杂,但侧重于GET、POST、PUT和DELETE方法,以及关键的初始领域。
HTTP2.0利用诸如头压缩、隔离、二元编码、多电路再使用等技术提高性能;
QUIC协议通过使用UDP定义的类似TCP的连接、重新测试、多路再利用和流量控制技术,进一步提高了绩效。
本文由 在线网速测试 整理编辑,转载请注明出处。