问题标签 [http-content-length]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jsp - 为什么我的 JSP 页面没有输出内容长度?
我在使用 JSP 页面的 Web 应用程序前面配置了 CloudFront,但它不会缓存我的页面,因为没有设置 Content-Length 标头。
有没有一种方法可以让 JSP 包含 Content-Length,或者我是否需要做一些丑陋的事情,比如有一个过滤器,而不是流式传输内容以确定它的长度,然后将其流式传输到响应流(设置 ContentLength 标头第一的)。
php - php cURL POST 内容长度总是显示-1
我是使用 cURL 向服务器发送 POST 请求的新手,但服务器始终显示内容长度为 -1,我的代码如下:
为什么内容长度总是显示-1,谢谢~
php - Azure 文件存储 putRange 操作失败并显示 416:InvalidHeaderValue (Content-Length)
我正在使用 Azure SDK 对 Azure 文件存储执行基本操作。为了支持更大的文件上传,我支持分块上传,所以我打电话:
$storage->createFileFromContent(...)
在第一块和
$storage->putFileRange(...)
关于以下所有内容。
第一个请求工作正常,文件在指定的第一个范围内填充。但是,第二个和以下请求失败并出现错误:
这是我为第一个请求指定的标头:
流的实际大小:3000000
对于第二个请求:
流的实际大小:3000000
有人可以告诉我有什么问题吗?我还尝试将范围调整为 300000-6000000,但随后出现此错误:
“代码:400 值:HTTP 标头之一的值格式不正确。>> 内容长度”
这可能是由于 Azure 中的存储配置错误造成的吗?
http - ASP.NET 核心:HTTP HEAD 请求和 Content-Length 标头
这个问题与一个 ASP.NET 核心 2.2 Web 应用程序(以 .NET 核心为目标)有关,该应用程序公开了一些使用 mvc 中间件实现的 Web api 控制器。所有控制器中可用的所有操作方法都必须响应 GET 和 HEAD http 方法。
我们注意到 ASP.NET 核心会自动添加Transfer-Encoding
带有值的标头,chunked
并根据规范省略Content-Length
标头(有关更多详细信息,请参阅此 MDN 页面)。
根据ASP.NET 核心存储库上的这个 github 问题,这种行为似乎取决于 Kestrel Web 服务器的精确设计决策,因此这是预期的行为。
也就是说,每次我们向应用程序的任何路由发出 HEAD 请求时,我们都会得到一个将Content-Length
标头设置为 0 的响应,即使相应的 GET 请求(我的意思是具有相同路径的 GET 请求)返回一个非空响应体.
根据我在各种来源上阅读的内容,似乎Content-Length
对于 HEAD 请求的响应,标头不是强制性的,但是当包含它时,它应该与相应的 GET 请求具有相同的值。所以0
我们在每个 HEAD 请求上看到的值对我来说似乎并不正确。
对于相应的 GET 请求,ASP.NET 核心通过使用块发送响应(如上所述Transfer-Encoding
总是chunked
针对 GET 请求),这是一个副作用吗?
另一个疑问与向我们的应用程序发出 HEAD 请求以决定是否清除缓存响应的任何类型的缓存有关:零值 Content-Length 是否会对缓存行为的正确性造成风险?
2018 年 3 月 27 日编辑
我们重复了测试,得到了不同但更有意义的结果。我可以确认 GET 和 HEAD 请求都没有发送任何 Content-Length 标头。这绝对是有道理的,因为响应主体总是按块传输到客户端,如上所述。
也就是说,我认为 ASP.NET 核心行为对我来说绝对有意义。
java - 在@RestController 中禁用传输编码
我有@RestController
如下端点(spring-boot 版本 1.5.9.RELEASE)
每当我调用上面的端点时,我都会收到带有以下标题的响应,
我想禁用传输编码,即我需要包含内容长度。
我有很多这样的控制器。所以我不想计算每个端点的长度并返回ResponseEntity
长度值。我正在寻找将自动包含内容长度的通用解决方案。有没有办法做到这一点?
nginx - 如何将 Content-Length 标头添加到缓存文件?
我使用 Nginx 作为反向代理并缓存来自上游服务器的代理响应。
因此,在发送给我的客户端之前,我需要在这个缓存文件中添加一个 Content-Length 标头。
我尝试将$upstream_response_length变量添加到 location 指令,但它不起作用。
我怎样才能做到这一点?
utf-8 - 如何在 tclhttpd 中正确计算 Content-length?
我的 Tcl 源文件是 utf-8 格式。Tclhttpd 不能正确发送国家字符,所以我稍微修改了一下。但是,我也发送二进制文件,如 jpg 图像,有时二进制块存在于我的其他 utf-8 HTML 中。我很难计算正确的 Content-length 以完全匹配浏览器接收的内容(否则一些尾随字符会破坏下一个请求标头或浏览器每个请求等待 30 秒,直到超时)。
换句话说,我可以知道puts $socket
写入套接字的字节数吗?
我发现了一个特定的 11 字节序列,它搞砸了计数:
控制台上的输出是:
结果Content-Length: 17太多了,浏览器一直在等待。如果我只能事先知道,我的字符串会产生多少字节puts
,剩下的就很容易了。有办法吗?
http - Web 浏览器如何识别 HTTP 请求内容长度
- 当我上传文件时,浏览器如何获取文件的大小,并计算总大小(内容长度),并确保它是准确的。
Nginx 可以限制文件大小,例如 1M,1M 中究竟包含什么,HTTP 全字节?一种形式的所有信息?还是一种形式的最大文件(例如,一种形式包括 3 种文本类型和一种文件类型)?Nginx 是通过 Content-length 还是文件的属性来判断的?
如何通过后缀限制文件大小,例如 JPG 5M 以下,MP4 20M 以下,ZIP 100M 以下
node.js - axios手动设置Content-Length,nodeJS
有没有办法在 nodeJS 中发送发布请求并指定内容长度。
我试过(使用 axios):
它不起作用,长度会自动设置为我通过的值以外的值。
我正在使用 axios,但可以使用任何其他方式从 nodeJS 发布。