如何检测 Http 请求的结束?

Posted

技术标签:

【中文标题】如何检测 Http 请求的结束?【英文标题】:How to detect end of Http request? 【发布时间】:2012-09-17 23:43:43 【问题描述】:

我正在创建一个 Http 请求解析器。我以块(字节数组)的形式获取数据并同时解析它。我想知道检测到http请求结束的情况。请求可能包含也可能不包含消息正文。

谢谢

【问题讨论】:

这个问题已经回答了:***.com/questions/4824451/… 这有点引出一个问题,为什么当 .Net 内置了一个非常好的请求解析器时,您为什么要编写自己的请求解析器? @PhonicUK:因为这是一次很棒的学习体验? ....net 的人在压力下表现得很糟糕? @Randoms,那么公平=) 【参考方案1】:

三种不同的方式:

内容长度标头(标头后面的字节数)

分块编码(请求开始时内容长度未知,分块编码将指示何时到达结束)

连接被服务器关闭 (http "0.9")

【讨论】:

以上是关于如何检测 Http 请求的结束?的主要内容,如果未能解决你的问题,请参考以下文章

HTTP/1.1 是不是允许通过半关闭连接来分隔请求结束?

在 PHP 中检测获取请求

如何在php中检测ajax跨域请求

Jetty如何检测HTTP连接是不是被客户端关闭

用于检测 Google Chrome 的预加载请求的 HTTP 标头

使用一个HttpModule拦截Http请求,来检测页面刷新(F5或正常的请求)