我想知道如果想要将大量二进制文件等大量数据发送到我的http服务器,是否可以停止连接?如果有可能那么。
答案 0 :(得分:1)
是的,有时可能,但可能无法所有时间。
TIdHTTPServer
有一个OnHeadersAvailable
事件,该事件在读取客户端的请求标头之后且在读取请求正文之前触发。该事件使您可以访问标题。您可以检查Content-Length
标头的值,如果它不适合您的需要,则可以将事件的VContinueProcessing
参数设置为False以拒绝该请求。如果要自定义发送回客户端的错误消息,请使用OnHeadersBlocked
事件根据需要提供您自己的ResponseNo
,ResponseText
和ContentText
值。
请注意,这仅在客户端发送Content-Length
标头时才有效。这不是严格要求的,具体取决于上传的性质。客户端可以使用chunked
转移编码或MIME multipart/form-data
帖子,这两种帖子都是不依赖Content-Length
标头的自终止格式。如果您想坚持客户端发送Content-Length
标头,如果标头丢失,您可以使用411
(需要长度)响应代码拒绝该请求。