这段时间在学习网络相关内容,但是现在遇到一个问题需要大家帮忙出点主意。
学习 HTTP 协议的时候肯定会看 HTTP 报文内容,比如请求头,请求体,但是目前使用 Node 创建一个 HTTP Server 后,当接收到客户端的请求时,HTTP 模块自动会把 request 相关的内容进行解析,但是我想要原始的 data咋么获取?包括 request 的请求头的原始数据。
从 HTTP server 这块肯定是拿不到,它的请求回调直接是 request 和 response 对象,HTTP 协议相关内容肯定被解析了。
server.on('request', function(req, res) {
//
}
使用 HTTP 的下层 TCP 获取数据,获取到的是消息体,但我想获取 HTTP 请求的整个数据。
server.on("connection", function (socket) {
// 当收到客户断消息会响应这个事件
socket.on('data', function(data) {
// data 是消息体
});
});
除了使用 node,也可以使用其它技术来获取一次 HTTP 请求的二进制数据。
总之,我只想看一看 HTTP 请求到达 Server 后未解析的原始数据。也就是说 HTTP 在发起请求肯定会传输数据包,server 在接收到数据包后需要根据协议约定进行解析。我想要的是未解析的数据包。
如果你有好的思路,欢迎留言讨论。