net-http-persistent manages persistent connections using Net::HTTP plus a speed
fix for Ruby 1.8. It's thread-safe too! Using persistent HTTP connections can
dramatically increase the speed of HTTP. Creating a new HTTP connection for
every request involves an extra TCP round-trip and causes TCP congestion
avoidance negotiation to start over. Net::HTTP supports persistent connections
with some API methods but does not handle reconnection gracefully.
Net::HTTP::Persistent supports reconnection and retry according to RFC 2616.
RG: https://rubygems.org/gems/net-http-persistent
A fast, primitive HTTP request parser
This is a very small (7 Kb) HTTP server. It runs from inetd, which means
its performance is poor. But for low-traffic sites, it's quite adequate.
It implements all the basic features of an HTTP server.
Cowboy aims to provide a complete HTTP stack in a small code base. It
is optimized for low latency and low memory usage, in parts because it
uses binary strings.
Cowboy provides routing capabilities, selectively dispatching requests
to handlers written in Erlang.
Because it uses Ranch for managing connections, Cowboy can easily be
embedded in any other application.
POE::Component::Client::HTTP is an asynchronous, event driven HTTP user
agent. It accepts events containing HTTP::Request objects, and it
returns events carrying HTTP::Response objects. It supports https and
simultaneous HTTP transactions. It lets other sessions run while HTTP
transactions are being processed, and it lets several HTTP transactions
be processed in parallel.
Supports GET/POST/HEAD/TRACE/PUT/DELETE, Basic authentication, Proxy,
Proxy Authentication, SSL, file uploads etc.
bjoern, is a fast and ultra-lightweight asynchronous HTTP/1.1 WSGI server. It
uses Marc Lehmann's hight performance libev event loop and Ryan Dahl's
http-parser.
Handling mobile location information plugin for HTTP::MobileAgent.
Serveez is a server framework. It provides routines and help for
implementing IP based servers (currently TCP, UDP and ICMP). It is also
possible to use named pipes for all connection oriented protocols. We
think it is worth the effort because many people need server
functionality within their applications. However, many people
experience problems with select()- or poll()-loops, and with
non-blocking operations. This application demonstrates various aspects
of advanced network programming in a portable manner. You can use it for
implementing your own servers or for understanding how certain network
services and operations work. The package includes a number of servers
that work already: an HTTP server, an IRC server, a Gnutella spider and
some others. One of the highlights is that you can run all protocols on
the same port. The application itself is single threaded but it uses
helper processes for concurrent name resolution and ident lookups.
This software does all the dirty work of parsing HTTP Requests to find incoming
query parameters.
Incoming query parameters come from two places. The first place is the query
portion of the URL. Second is the content portion of an HTTP request as is the
case when parsing a POST request, for example.