Nodejs:如何拒绝基于报头的https帖子



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

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

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

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

或者,通过检查请求以类似的方式实现您自己的解决方案。标题内容长度[],等。

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

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

相关内容

最新更新