Nodejs:如何根据标题拒绝https帖子

时间:2013-03-25 10:47:38

标签: node.js

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

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

2 个答案:

答案 0 :(得分:1)

您可以尝试使用Connect Limit中间件:

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

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

答案 1 :(得分:0)

基于实验,似乎Node.js仅在解析HTTP标头后触发request事件。这意味着在我们开始监听data事件之前,有机会检查标题。

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