accf_http(9)
NAME
- accf_http - buffer incoming connections until a certain com
- plete HTTP
requests arrive
SYNOPSIS
options INET options ACCEPT_FILTER_HTTP kldload accf_http
DESCRIPTION
- This is a filter to be placed on a socket that will be using
- accept() to
receive incoming HTTP connections. - It prevents the application from receiving the connected de
- scriptor via
accept() until either a full HTTP/1.0 or HTTP/1.1 HEAD or - GET request has
been buffered by the kernel. - If something other than a HTTP/1.0 or HTTP/1.1 HEAD or GET
- request is
received the kernel will allow the application to receive - the connection
descriptor via accept(). - The utility of accf_http is such that a server will not have
- to context
switch several times before performing the initial parsing - of the
request. This effectively reduces the amount of required - CPU utilization
to handle incoming requests by keeping active processes in - preforking
servers such as Apache low and reducing the size of the file - descriptor
set that needs to be managed by interfaces such as select(), - poll() or
kevent() based servers. - The accf_http kernel option is also a module that can be en
- abled at runtime via kldload(8) if the INET option has been compiled in
- to the kernel.
EXAMPLES
- Assuming ACCEPT_FILTER_HTTP has been included in the kernel
- config file
or the accf_http module has been loaded, this will enable - the http accept
filter on the socket sok.
struct accept_filter_arg afa;- bzero(&afa, sizeof(afa));
strcpy(afa.af_name, "httpready");
setsockopt(sok, SOL_SOCKET, SO_ACCEPTFILTER, &afa, - sizeof(afa));
SEE ALSO
setsockopt(2), accept_filter(9)
HISTORY
- The accept filter mechanism and the accf_http filter were
- introduced in
FreeBSD 4.0.
AUTHORS
- This manual page and the filter were written by Alfred Perl
- stein.
- BSD November 15, 2000