accf_http (original) (raw)

FreeBSD Manual Pages


ACCF_HTTP(9) Kernel Developer's Manual ACCF_HTTP(9)

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 connec-
   tion 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  re-
   quest.  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)](/cgi/man.cgi?query=kldload&sektion=8&apropos=0&manpath=FreeBSD+14.2-RELEASE+and+Ports) 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 ac- cept 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), acceptfilter(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.

FreeBSD 13.2 November 15, 2000 ACCF_HTTP(9)


NAME |SYNOPSIS |DESCRIPTION |EXAMPLES |SEE ALSO |HISTORY |AUTHORS

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=accf_http&manpath=FreeBSD+14.2-RELEASE+and+Ports>