http - HTTP 请求解析
问题描述
我想了解在 HTTP 请求的情况下“传输编码:分块”的用法。
请求被分块是否常见?
我的想法是否定的,因为在处理之前需要完全读取请求,因此发送分块请求是没有意义的。
解决方案
对于充当反向代理或正向代理的 HTTP 代理,因此从一侧获取消息并在另一侧发送,使用分块传输意味着您可以发送您拥有的部分消息,而无需将其存储在本地。您可以避免“缓冲”问题、减速和存储问题。
您还可以根据每个参与者首选的数据块大小进行一些优化,例如您可以有一个参与者喜欢发送 8000 字节的数据包,因为这是他自己的内核设置(tcp 窗口、内部 http 服务器缓冲区大小等)的好数字),而另一个参与者使用较小的 2048 字节块进行消息传输。
最后,您不需要计算消息的大小,消息将在流结束标记处结束,仅此而已。如果您要发送即时压缩的内容,这也很有用,您可能不知道最终大小,直到所有内容都被压缩。
分块传输被大量使用。如果您要求HTTP/1.1
mode 而不是,它是大多数 HTTP 服务器的默认模式HTTP/1.0
。
推荐阅读
- node.js - nodejs express 服务器意外停止
- flutter - Checkbox form validation
- c# - 如何处理 dot net core web api 中的 OPTION 标头
- javascript - Transpile typescript into plain Javascript
- spring-batch - Spring Batch:SingleItemPeekableItemReader 有时无法正常工作
- javascript - How to replace item by dropping another item on it using ng2-dnd library
- awk - sed delete lines matching pattern between 2 files
- java - 平铺地图上的 LibGDX AStar 寻路
- sql - Should there be a foreign key "to" an associative entity, or "from" the associative entity?
- shiny - highlighting text on shiny