The LWP::Protocol::connect module provides support for using https
over a proxy via the HTTP/Connect method.
The LWP::Protocol::http10 module provide support for using HTTP/1.0 protocol
with LWP. To use it you need to call LWP::Protocol::implementor() to override
the standard handler for http URLs.
This module used to be bundled with the libwww-perl, but it was unbundled in
v6.02 as part of the general cleanup for the 6-series. LWP::Protocol::http10 is
deprecated.
HTTP::Lite is a stand-alone lightweight HTTP/1.1 implementation for perl. It
is not intended as a replacement for the fully-features LWP module. Instead,
it is intended for use in situations where it is desirable to install the
minimal number of modules to achieve HTTP support, or where LWP is not a good
candidate due to CPU overhead, such as slower processors. HTTP::Lite is also
significantly faster than LWP.
HTTP::Lite is ideal for CGI (or mod_perl) programs or for bundling for
redistribution with larger packages where only HTTP GET and POST functionality
are necessary.
If you require more functionality, such as FTP or HTTPS, please see libwwwperl
(LWP). LWP is a significantly better and more comprehensive package than
HTTP::Lite, and should be used instead of HTTP::Lite whenever possible.
HTTP::MHTTP - this library provides reasonably low level access to the
HTTP protocol, for perl. This does not replace LWP (what possibly could
:-) but is a cut for speed. It also supports all of HTTP 1.0, so you
have GET, POST, PUT, HEAD, and DELETE. Some support of HTTP 1.1 is
available - specifically Transfer-Encoding = chunked and the Keep-Alive
extensions.
Additionally - rudimentary SSL support compiled in. This effectively
enables negotiation of TLS, but does not validate the certificates.
A way faster http access library that uses C extension based on mhttp to
do the calls.
The LWP::Protocol::https module provide support for using https schemed URLs
with LWP. This module is a plug-in to the LWP protocol handling, so you don't
use it directly. Once the module is installed LWP is able to access sites using
HTTP over SSL/TLS.
If hostname verification is requested by LWP::UserAgent's ssl_opts, and neither
SSL_ca_file nor SSL_ca_path is set, then SSL_ca_file is implied to be the one
provided by Mozilla::CA. If the Mozilla::CA module isn't available SSL requests
will fail. Either install this module, set up an alternative SSL_ca_file or
disable hostname verification.
This module used to be bundled with the libwww-perl, but it was unbundled in
v6.02 in order to be able to declare its dependencies properly for the CPAN
tool-chain. Applications that need https support can just declare their
dependency on LWP::Protocol::https and will no longer need to know what
underlying modules to install.
This class works just like LWP::UserAgent (and is based on it, by being a
subclass of it), except that when you use it to get a web page but run into a
possibly-temporary error (like a DNS lookup timeout), it'll wait a few seconds
and retry a few times.
It also adds some methods for controlling exactly what errors are considered
retry-worthy and how many times to wait and for how many seconds, but normally
you needn't bother about these, as the default settings are relatively sane.
LWP::UserAgent::POE is a subclass of LWP::UserAgent and works well
in a POE environment. It is a drop-in replacement for LWP::UserAgent
in systems that are already using LWP::UserAgent synchronously and
want to play nicely with POE.
LWP::UserAgent::WithCache is a LWP::UserAgent extention. It handle
'If-Modified-Since' request header with local cache file. local cache files are
implemented by Cache::FileCache.
LWPx::ParanoidAgent is a class subclassing LWP::UserAgent, but
paranoid against attackers. It's to be used when you're fetching
a remote resource on behalf of a possibly malicious user.
This class can do whatever LWP::UserAgent can (callbacks, uploads
from files, etc), except proxy support is explicitly removed, because
in that case you should do your paranoia at your proxy.
Also, the schemes are limited to http and https, which are mapped to
LWPx::Protocol::http_paranoid and LWPx::Protocol::https_paranoid,
respectively, which are forked versions of the same ones without
the "_paranoid". Subclassing them didn't look possible, as they were
essentially just one huge function.
This class protects you from connecting to internal IP ranges
(unless you whitelist them), hostnames/IPs that you blacklist, remote
webserver tarpitting your process (the timeout parameter is changed to
be a global timeout over the entire process), and all combinations of
redirects and DNS tricks to otherwise tarpit and/or connect to internal
resources.
A fast, primitive HTTP request parser