如果文件大小超过Content-Length,libcurl是否会中止下载?

时间:2012-04-09 17:05:57

标签: curl libcurl

我有一个网络应用程序,用户可以发布网址以下载他的文件。我正在使用libcurl,我正在检查响应Content-Length以强制执行文件大小限制。我担心一些带走的服务器会继续上传,最终会占用所有可用空间并阻塞我的服务器。如果libcurl的大小大于Content-Length,那么它会中止下载文件吗?

1 个答案:

答案 0 :(得分:2)

是的(主要是)。由于Content-Length字段(使用时)是如何使用HTTP来表示此特定响应的正文大小。 HTTP客户端无法读取任何内容,因为连接将保持打开状态并重新用于下一个请求。

这是基本的HTTP 1.1功能,您可以在RFC7230中找到详细信息,如果您想阅读c​​url代码,请查看用于Content-Length头匹配和解析的lib / http.c源代码。然后进一步说明如何在lib / transfer.c等中使用'maxdownload'字段。