🐡

【OS】OSとWebサーバ

に公開

はじめに


https://qiita.com/mi-1109/items/a8e5cfa0637ba2925b59 より

「WebサーバーOSとどう関係してるのか?」
そんな疑問を持つ初学者の方に向けて、本記事では WebサーバーとOSの関係を、できるだけわかりやすくまとめていきます。

Webサーバーとは

Webサーバーとは、クライアント(ブラウザ)からのリクエストに応じて、Webページや画像などのデータを返すソフトウェアのことを指します。
ApacheやNginxなどがその例です。

しかしこのWebサーバーソフトは、単体で魔法のように動くわけではありません。
その裏で、OSの力を借りて動作しています。

WebサーバーはOSの上で動くソフトウェア

Webサーバーも「アプリケーション」の一つで、OSの支援がなければ動けません。
そのため、上記のイメージのように、OSの上にソフトウェアとしてサーバがあります。

OSがWebサーバーに提供する役割

OSの機能 Webサーバーにとっての意味
ネットワーク管理 HTTPリクエストを受け取るための通信口(ポート)を提供
ファイルシステム操作 HTMLファイルや画像などのデータを読み込む
プロセス/スレッド管理 複数のアクセスを同時に処理(並列処理)
メモリ管理 キャッシュやセッション情報の保持
権限とセキュリティ 重要なファイルへのアクセス制限や防御

つまり、Webサーバーは「リクエストを処理する」だけでなく、リクエストの受け取り、ファイルの読み出し、レスポンスの送信などすべての操作でOSの力を借りているのです。

リクエスト処理の裏側:OSとWebサーバーの共同作業

① リクエスト受信(ソケットの待機)
Webサーバーは、80番や443番といったポートを開いて、接続を待ちます。
このポートの管理やネットワーク接続の処理は OSが担当しています。

② ファイルの読み込み
リクエストされたURLに対応するファイル(例:/index.html)を、Webサーバーが探します。
実際の読み出し処理は OSのファイルシステム経由で行われます。

③ レスポンスの送信
処理結果(HTMLなど)をブラウザに送り返すのも、実際のデータ転送は OSがネットワークを通じて行なう仕事です。

WebサーバーでLinuxが多く使われる理由

現実のWebサーバーの多くはLinuxというOS上で動いています。
・安定性が高い(落ちにくい)
・ネットワークやプロセス管理が軽量で高速
・セキュリティやアクセス権管理が柔軟
・サーバー用途のカスタマイズがしやすい
・コストがかからない(オープンソース)

こういった理由からOSにLinuxが指示されています。

おわりに

Webサーバーは、クライアントからのリクエストを処理する表舞台の存在でありながら、実際にはその動作のほとんどをOSの支援に依存しています。ネットワークポートを開くこと、ファイルを読み書きすること、複数のリクエストを同時にさばくこと、メモリやリソースを効率よく管理すること――これらすべては、OSが裏方として担っている重要な役割を担っていることが理解できたと思います。
最後までお読みいただき、ありがとうございました。

参考・画像引用元URL

https://qiita.com/mi-1109/items/a8e5cfa0637ba2925b59
https://baremetal.jp/blog/2016/12/05/69/

Discussion