Class Poco::Net::HTTPServer
Author: Applied Informatics Software Engineering GmbH and Contributors
Date: 2009-11-24

# Poco::Net

# class HTTPServer

Library: Net
Package: HTTPServer
Header: Poco/Net/HTTPServer.h

## Description

A subclass of TCPServer that implements a full-featured multithreaded HTTP server.

A HTTPRequestHandlerFactory must be supplied. The ServerSocket must be bound and in listening state.

To configure various aspects of the server, a HTTPServerParams object can be passed to the constructor.

The server supports:

- HTTP/1.0 and HTTP/1.1
- automatic handling of persistent connections.
- automatic decoding/encoding of request/response message bodies using chunked transfer encoding.

Please see the TCPServer class for information about connection and thread handling.

See RFC 2616 <http://www.faqs.org/rfcs/rfc2616.html> for more information about the HTTP protocol.

## Inheritance

Direct Base Classes: TCPServer

All Base Classes: TCPServer, Poco::Runnable

## Member Summary

Inherited Functions: currentConnections, currentThreads, maxConcurrentConnections, params, port, queuedConnections, refusedConnections, run, start, stop, threadName, totalConnections

## Constructors

### HTTPServer

HTTPServer(
HTTPRequestHandlerFactory::Ptr pFactory,
const ServerSocket & socket,
HTTPServerParams::Ptr pParams
);

Creates the HTTPServer, using the given ServerSocket.

The server takes ownership of the HTTPRequstHandlerFactory and deletes it when it's no longer needed.

The server also takes ownership of the HTTPServerParams object.

News threads are taken from the default thread pool.

### HTTPServer

HTTPServer(
HTTPRequestHandlerFactory::Ptr pFactory,
Poco::ThreadPool & threadPool,
const ServerSocket & socket,
HTTPServerParams::Ptr pParams
);

Creates the HTTPServer, using the given ServerSocket.

The server takes ownership of the HTTPRequstHandlerFactory and deletes it when it's no longer needed.

The server also takes ownership of the HTTPServerParams object.

News threads are taken from the given thread pool.

## Destructor

### ~HTTPServer

~HTTPServer();

Destroys the HTTPServer and its HTTPRequestHandlerFactory.