http-parser-js

A pure JS HTTP parser for node.

MIT 32 个版本
安装
npm install http-parser-js
yarn add http-parser-js
pnpm add http-parser-js
bun add http-parser-js
README

Node Node-v12

HTTP Parser

This library parses HTTP protocol for requests and responses. It was created to replace http_parser.c since calling C++ functions from JS is really slow in V8. However, it is now primarily useful in having a more flexible/tolerant HTTP parser when dealing with legacy services that do not meet the strict HTTP parsing rules Node's parser follows.

This is packaged as a standalone npm module. To use in node, monkeypatch HTTPParser.

// Monkey patch before you require http for the first time.
process.binding('http_parser').HTTPParser = require('http-parser-js').HTTPParser;

var http = require('http');
// ...

Testing

Simply run npm test. The tests are copied from node and mscedex/io.js, with some modifcations.

Status

This should now be usable in any node application, it now supports (nearly) everything http_parser.c does while still being tolerant with corrupted headers, and other kinds of malformed data.

Node versions

http-parser-js should work via monkey-patching on Node v6-v11, and v13-14.

Node v12.x renamed the internal http parser, and did not expose it for monkey-patching, so to be able to monkey-patch on Node v12, you must run node --http-parser=legacy file.js to opt in to the old, monkey-patchable http_parser binding.

Standalone usage

While this module is intended to be used as a replacement for the internal Node.js parser, it can be used as a standalone parser. The standalone-example.js demonstrates how to use the somewhat awkward API (coming from compatibility with the Node.js internals) to parse HTTP from raw Buffers.

License

MIT. See LICENSE.md

版本列表
0.5.10 2025-04-08
0.5.9 2025-01-09
0.5.8 2022-06-27
0.5.7 2022-06-23
0.5.6 2022-03-06
0.5.5 2021-11-27
0.5.4 2021-11-26
0.5.3 2021-01-01
0.5.2 2019-11-02
0.5.1 2019-06-14
0.5.0 2018-10-22
0.4.13 2018-05-21
0.4.12 2018-04-24
0.4.11 2018-03-08
0.4.10 2018-02-03
0.4.9 2017-10-04
0.4.8 2017-09-21
0.4.7 2017-09-21
0.4.6 2017-09-13
0.4.5 2017-06-20
0.4.4 2016-09-07
0.4.3 2016-07-12
0.4.2 2016-01-16
0.4.1 2015-11-19
0.4.0 2015-09-28
0.3.0 2015-05-28
0.2.3 2015-03-03
0.2.2 2015-02-17
0.2.1 2015-02-05
0.2.0 2014-12-09
0.1.0 2014-04-17
0.0.0 2012-07-26