You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

29 lines
1.1 KiB

4 years ago
  1. # HTTP Parser
  2. This library parses HTTP protocol for requests and responses. It was created to replace `http_parser.c` since calling C++ function from JS is really slow in V8.
  3. This was further modified by Jimbly to be useable in parsing responses, specifically tested with the "request" module, and addresses issues such as corrupt HTTP headers, which would otherwise cause Node's parser to throw a fatal error (HPE_INVALID_HEADER_TOKEN).
  4. Jan Schär (jscissr) made some bigger changes and added tests. This fixed some bugs and added many missing features.
  5. This is packaged as a standalone npm module. To use in node, monkeypatch HTTPParser.
  6. ```js
  7. // Monkey patch before you require http for the first time.
  8. process.binding('http_parser').HTTPParser = require('http-parser-js').HTTPParser;
  9. var http = require('http');
  10. // ...
  11. ```
  12. ## Testing
  13. Simply do `npm test`. The tests are copied from node and mscedex/io.js, with some modifcations.
  14. ## Status
  15. 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.
  16. ## License
  17. MIT. See LICENSE.md