热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

HTTP/2HEADERS和DATA帧

如何解决《HTTP/2HEADERS和DATA帧》经验,为你挑选了1个好方法。

我正在尝试详细了解HTTP/2.我读了这篇关于流,消息和框架的文章:https://hpbn.co/http2/#streams-messages-and-frames.我不知道我的概念是否正确.

我得出以下结论:

消息是HEADER帧和一个或多个DATA帧的组合.

DATA帧只能与HEADERS帧一起发送,因为我没有看到任何显示DATA帧流ID的指标(RFC 7540,6.1)

如果是这样,则只能在消息中发送数据帧

Stream可以分块为多个Frame,而Stream可以通过Stream ID与Stream相关联

此外:规范中如何表示消息?



1> sbordet..:

你有一些错误的东西.

消息是一个或两者的组合中HEADER的帧(携带HTTP头),零个或多个数据帧和一个可选的终端HEADER帧(携带HTTP拖车).您可以查看RFC 7540本节中的示例.100 Continue响应有一个特殊情况,可以从两个HEADERS而不是一个开始.在下文中我们可以忽略这种情况.

DATA确实有一个流ID,因为所有帧共享中定义的帧报头RFC 7540的这个部分.6.1节中描述的仅是DATA框架的主体.

消息是HTTP/2流的一半.消息表示HTTP请求或HTTP响应.

HTTP/2流是请求消息和响应消息的组合.请注意,这不应与flag_end_stream任何一个对等体发送给该特定流的最后一帧的信号相混淆.

GET然后,浏览器执行的典型请求将具有(假设流ID为13):

一个HEADERS帧与ID = 13,flag_end_headers=trueflag_end_stream=true(一个GET请求通常具有不体)

对该GET请求的典型响应将具有:

HEADERS帧ID = 13和flag_end_headers=true

一个或多个DATA帧,ID = 13; 最后一DATA帧将有flag_end_stream=true.

注意,由于多路复用,帧可以交错; 这意味着,如果您有两个并发响应(例如,对于流13和流15),您可以使用以下序列:

HEADERS(13) HEADERS(15) DATA(15) DATA(13) DATA(13] DATA(15) DATA(15]

括号]表示它是流中的最后一帧.


推荐阅读
  • 如何解决《与HTTP/1.1相比,HTTP/2如何提供更快的浏览速度?》经验,为你挑选了1个好方法。 ... [详细]
  • Java Servlet中获取客户端IP与MAC地址的方法
    本文介绍了一种在Java Servlet应用中获取客户端IP地址及MAC地址的技术实现方法,通过示例代码详细解析了获取过程中的关键步骤和技术点。 ... [详细]
  • JavaScript:简洁与复杂之间的平衡
    本文探讨了在编写JavaScript教程时,如何在保持内容简洁的同时,确保初学者能够理解并应用实际开发中的复杂问题。文章通过具体示例分析了不同层次的JavaScript代码实现。 ... [详细]
  • 本文探讨了Web开发与游戏开发之间的主要区别,旨在帮助开发者更好地理解两种开发领域的特性和需求。文章基于作者的实际经验和网络资料整理而成。 ... [详细]
  • 本文探讨了如何在Node.js环境中,通过Tor网络使用的SOCKS5代理执行HTTP请求。文中不仅提供了基础的实现方法,还介绍了几种常用的库和工具,帮助开发者解决遇到的问题。 ... [详细]
  • 本文探讨了浏览器的同源策略限制及其对 AJAX 请求的影响,并详细介绍了如何在 Spring Boot 应用中优雅地处理跨域请求,特别是当请求包含自定义 Headers 时的解决方案。 ... [详细]
  • 探索Squid反向代理中的远程代码执行漏洞
    本文深入探讨了在网站渗透测试过程中发现的Squid反向代理系统中存在的远程代码执行漏洞,旨在帮助网站管理者和开发者了解此类漏洞的危害及防范措施。 ... [详细]
  • 深入探讨ASP.NET中的OAuth、JWT与OpenID Connect
    本文作为前文关于OAuth2.0和使用.NET实现OAuth身份验证的补充,详细阐述了OAuth与JWT及OpenID Connect之间的关系和差异,旨在提供更全面的理解。 ... [详细]
  • 本文由「Vue虚拟实验室」的成员effort撰写,深入探讨了Vue CLI 3.0创建项目后的配置细节,特别是如何通过配置代理解决开发环境中的跨域问题。 ... [详细]
  • 本文详细介绍了如何使用Python通过GET和POST方法发送HTTP请求,并接收HTTP响应的具体实现方法。包括示例代码和相关模块的功能说明。 ... [详细]
  • 本文探讨了在使用Python进行多进程编程时遇到的退出异常问题,并提供了一种有效的解决方案。尤其针对大量数据和高并发场景下的异常退出情况进行了优化。 ... [详细]
  • 随着毕业设计的结束,我终于有时间更新我的博客了。这次,我将分享如何在自己的服务器上搭建 Bitwarden,一个广受好评的开源密码管理工具。 ... [详细]
  • 如何解决《node.js服务器和带有express.js的HTTP/2(2.0)》经验,为你挑选了2个好方法。 ... [详细]
  • 本文详细介绍了如何正确安装Java EE SDK,并解决在安装过程中可能遇到的问题,特别是关于servlet代码在Apache Tomcat 10中无法运行的情况。 ... [详细]
  • 本文深入探讨了 AdapterView 中 onItemClick 方法的工作原理及其参数的具体含义,结合实际案例分析其应用场景。 ... [详细]
author-avatar
多米音乐_35782132
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有