如果文件大小超过内容长度,libcurl是否会中止下载?

如果文件大小超过内容长度,libcurl是否会中止下载?,curl,libcurl,Curl,Libcurl,我有一个web应用程序,用户可以发布url来下载他的文件。我使用libcurl并检查响应内容长度以强制执行文件大小限制。我担心一些被占用的服务器会继续上传,最终会填满所有可用空间并阻塞我的服务器。如果文件大小大于内容长度,libcurl会中止下载吗?是的(大部分情况下)。因为内容长度字段(使用时)是如何使用HTTP来告知此特定响应的主体大小的。HTTP客户机无法读取更多内容,因为连接将保持打开状态,并在下一个请求中重新使用 这是HTTP 1.1的基本功能,您可以在中找到详细信息,如果您想阅读cu

我有一个web应用程序,用户可以发布url来下载他的文件。我使用libcurl并检查响应内容长度以强制执行文件大小限制。我担心一些被占用的服务器会继续上传,最终会填满所有可用空间并阻塞我的服务器。如果文件大小大于内容长度,libcurl会中止下载吗?

是的(大部分情况下)。因为内容长度字段(使用时)是如何使用HTTP来告知此特定响应的主体大小的。HTTP客户机无法读取更多内容,因为连接将保持打开状态,并在下一个请求中重新使用


这是HTTP 1.1的基本功能,您可以在中找到详细信息,如果您想阅读curl代码,请查看lib/HTTP.c源代码中的内容长度头匹配和解析,然后进一步了解“maxdownload”字段在lib/transfer.c等中的使用方式。

您可以编写一个简单的测试用例,自己尝试一下。。。一个输出100k的脚本,一个只需要50k的下载脚本。@MarcB好的,我做了,它在内容长度上停止了。到现在为止,一直都还不错。但我真的希望得到权威性的回答。与检查文件大小的源链接类似。因为可能存在其他标题会改变某些内容(一切),你知道。@MarcB除此之外,我不知道可能是我的测试服务器(Webrick)停止了流媒体,因为我将内容长度标题设置为小于文件大小。而不是libcurl停止接收。我怎么知道?