Nodejs:如何根据标题拒绝httpspost

在接受通常很大(几MB)的HTTPS发布请求的node.js服务器中,我们希望能够在整个事情被服务器接受之前开始处理请求。

例如,如果有一个胖胖的身体请求到达,我们要看它的path,并根据它决定是否终止/拒绝它,而不必等待整个请求到达(并支付IO成本接收肥体)。

您可以尝试连接限制中间件:

https://github.com/senchalabs/connect/blob/master/lib/middleware/limit.js

或者,通过检查req.headers [content-length]等类似的方式来实现你自己的解决scheme。

基于实验,Node.js似乎只在parsingHTTP头之后触发request事件。 这意味着在我们开始监听data事件之前,有机会检查这些头文件。

因此,解决scheme似乎是在读取任何数据之前检查标题,并可能在此时拒绝该请求。 如果我们不拒绝那个时候,我们开始累积数据缓冲区到达,如果它们超过了限制(从而与报告的内容长度冲突),我们有另一个机会通过调用response.end()来拒绝请求。 response.end()