ACCF_HTTP(9) | FreeBSD Kernel Developer's Manual | 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() ベースのサーバのようなインタフェースによって管理される必要があるファイル記述子の設定のサイズを小さく縮小しているような前もってフォーク (fork) しているサーバのアクティブなプロセスを保持することによって、着信要求を扱うために要求される CPU 利用の量を効果的に減らします。
また、 accf_http カーネルオプションは、INET オプションがカーネルにコンパイルされているなら、 kldload(8) によって実行時に有効にすることができるモジュールです。
使用例
ACCEPT_FILTER_HTTP がカーネル設定ファイルに含まれているか、または accf_http モジュールがロードされていると仮定すれば、これは、ソケット sok で http 受け付けフィルタを有効にします。
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 で導入されました。作者
このマニュアルページとフィルタは、 によって書かれました。November 15, 2000 | FreeBSD |