The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

HTTP::Parser::XS - a fast, primitive HTTP request parser

SYNOPSIS

  use HTTP::Parser::XS qw(parse_http_request);
  
  my $ret = parse_http_request(
      "GET / HTTP/1.0\r\nHost: ...\r\n\r\n",
      \%env,
  );
  if ($ret == -2) {
      # request is incomplete
      ...
  } elsif ($ret == -1) {
      # request is broken
      ...
  } else {
      # $ret includes the size of the request, %env now contains a PSGI
      # request, if it is a POST / PUT request, read request content by
      # yourself
      ...
  }

DESCRIPTION

HTTP::Parser::XS is a fast, primitive HTTP request parser that can be used either for writing a synchronous HTTP server or a event-driven server.

METHODS

parse_http_request($request_string, \%env)

Tries to parse given request string, and if successful, inserts variables into %env. For the name of the variables inserted, please refer to the PSGI specification. The return values are:

>=0

length of the request (request line and the request headers), in bytes

-1

given request is corrupt

-2

given request is incomplete

AUTHOR

Kazuho Oku <kazuhooku@gmail.com>

SEE ALSO

HTTP::Parser HTTP::HeaderParser::XS

LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.