accf_http - buffer incoming connections until a certain complete HTTP requests arrive
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
options INET
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 options INET 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.
struct accept_filter_arg afa; bzero(&afa, sizeof(afa)); strcpy(afa.af_name, "httpready"); setsockopt(sok, SOL_SOCKET, SO_ACCEPTFILTER, &afa, sizeof(afa));
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |