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.