Provided by: freebsd-manpages_12.2-2_all bug

NAME

       accf_http — buffer incoming connections until a certain complete 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 descriptor 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 enabled at runtime via kldload(8)  if  the  INET
       option has been compiled into 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 Perlstein.

Debian                                          November 15, 2000                                   ACCF_HTTP(9)