ACCF_HTTP(9) FreeBSD カーネル開発者マニュアル ACCF_HTTP(9)
名称
accf_http − ある完全な HTTP リクエストの到着までの間の入力接続バッファ |
書式
options INET |
options ACCEPT_FILTER_HTTP |
kldload accf_http |
解説 |
これは HTTP 入力接続を受け取るために accept() が使用されるソケット上に配 置されるためのフィルタです。 これは完全な HTTP/1.0 または HTTP/1.1 の HEAD または GET リクエストがカー ネルによってバッファされるまでの間に、アプリケーションが accept() を介し て接続された記述子を受け取ることを防止します。 HTTP/1.0 または HTTP/1.1 の HEAD または GET リクエスト以外の何かが受け取 られた場合には、カーネルはアプリケーションが accept() を介して接続記述子 を受け取ることを可能にします。 accf_http の効用は、サーバがそのリクエストの初期の文法解析を実行する前に コンテキストの切り替えを何回か行なう必要が無いようにすることです。 Apache のようなサーバのフォーク前のアクティブプロセス数を低く抑え、 select(), poll() または kevent() のようなインタフェースによって管理されることが必要 なファイル記述子の組の大きさを減少させることによって、入力リクエストのた めに必要な CPU 利用を効果的に減少させます。 カーネルの中に INET オプションが既にコンパイルされている場合には、 accf_http カーネルオプションは kldload(8) を介して実行時に有効化すること ができるモジュールもあります。 |
使用例
ACCEPT_FILTER_HTTP がカーネルコンフィグファイルに含まれているか、 accf_http モジュールがロードされていると仮定して、これはソケット sok 上の http accept フィルタを有効化します。 |
struct accept_filter_arg afa; |
||
bzero(&afa, sizeof(afa)); |
||
strcpy(afa.af_name, "httpready"); |
||
setsockopt(sok, SOL_SOCKET, SO_ACCEPTFILTER, &afa, sizeof(afa)); |
関連項目
歴史
accept フィルタ機構および accf_http フィルタは FreeBSD 4.0 で導入されまし た。 |
作者
このマニュアルページおよびこのフィルタは Alfred Perlstein が書きました。 FreeBSD 10.0 November 15, 2000 FreeBSD 10.0 |