前回の
Webサーバが呼ぶシステムコール
(2)
通常のアプリケーション開発では,
一般に,
accept(4, {sa_family=AF_INET, sin_port=htons(49150), sin_a
ddr=inet_addr("127.0.0.1")}, [16]) = 5
(中略)
read(5, "GET / HTTP/1.0\r\nHost: xxx-xxxxxx"..., 131072) = 308
(中略)
write(5, "HTTP/1.1 200 OK\r\nDate: Sun, 10 A"..., 2218) = 2218
close(5) = 0
accept(4,
Webサーバはaccept(2)で待ち受け,5
が返っていますが,
「UNIXではあらゆるものがファイルである」5
を引数にread(2)やwrite(2)を呼び出し,
利用しているWebサーバ実装によっては,
- 注4)
- 実際にはこれらのシステムコールの間にはほかのシステムコールが挟まります。
Webアプリケーションで注目すべきシステムコール
前節では
非常にざっくり分類すると,
- (a)
ネットワークソケットを開き, 読み取り, 書き込む - (b)
ファイルを開き, 読み取り, 書き込む - (c)
リクエストの内容, および上記2つによって得られたデータに基づいて計算を行う
Perlで書かれたWebアプリケーションでは,
また,
本節の以降では,