大型HTTP信封是否在几个部分HTTP请求中分裂



我正在阅读一本查看不同Web服务体系结构的书,包括概述如何通过HTTP在HTTP中实现SOAP协议。这对我来说很有趣,因为我做了很多WCF开发,并且没有意识到如何实现客户端/服务器通信。

由于TCP之类的协议和固定最大数据包大小的任何内容,因此必须将消息拆分为数据包,因此我只是假设HTTP相似。是不是吗?

即。如果我使用20MB主体提出get/post请求,将发送单个HTTP信封并在服务器上重新组装?

如果是这种情况,那么HTTP请求的最大实际大小是多少?我以前已经配置了Nginx服务器以允许20MB文件传输,我想知道这是否太高...

从HTTP规范的角度来看,HTTP有效负载没有限制。根据RFC7230:

任何大于或等于零的内容长度字段值都是有效的。由于有效载荷的长度没有预定义的限制,因此收件人必须预期可能大的十进制数字并防止因整数转换溢出而导致的解析错误。

但是,为了防止非常长或非常缓慢的数据流攻击,Web服务器可能会拒绝此类HTTP请求并返回413 Payload Too Large响应。

"由于TCP之类的协议以及固定最大数据包大小的协议,因此必须将消息拆分为数据包,所以我只是假设HTTP相似。不是这样吗?&quot"

否。HTTP是一个应用程序级别协议,完全不同。由于HTTP基于TCP,当数据传输时,它将在TCP级别上自动分为数据包。无需在HTTP级别上拆分请求。

http主体可以随心所欲,没有下载尺寸限制,通常设置了尺寸限制,以防止有人将大量文件上传到服务器上。

,如果您只想要一部分,则可以使用范围标头要求一部分资源。

IE有时有2和4 GB的限制,但此后已固定。来源

最新更新