Web サーバー

プロトコル & 標準
HTTP/HTTPSを通じてWebコンテンツを配信するソフトウェアとハードウェアです。
← 用語集に戻る

Webサーバーとは?

A Web Server は、クライアントから HTTP/HTTPS リクエストを受信し、HTML ページ、画像、スタイルシート、スクリプト、および API レスポンスを含む Web コンテンツを配信するソフトウェア(および実行するハードウェア)です。

Webサーバーの仕組み

HTTP Request/Response Cycle:

Client (Browser) Web Server

│ │

│──── HTTP Request ──────────►│

│ GET /index.html │

│ Host: example.com │

│ │

│ Process Request

│ ├── Parse URL

│ ├── Check permissions

│ ├── Locate resource

│ └── Prepare response

│ │

│◄─── HTTP Response ──────────│

│ 200 OK │

│ Content-Type: text/html │

│ <html>...</html> │

│ │

人気のWebサーバーソフトウェア

サーバーマーケットシェア最高ののための
ログイン~34%高い通貨、逆のプロキシ
パスワード~31%柔軟性、.htaccess
クラウドフレア~21%CDN、エッジコンピューティング
ライトスピード~12%WordPressのホスティング
アイス~6%Windows/.NET環境

Web サーバー機能

ファンクションコンテンツ
静的ファイルサービングHTML、CSS、JS、画像
TLS/SSL終了HTTPS暗号化
逆プロキシバックエンドサーバーへの転送
負荷分散トラフィックの分散
キャッシングバックエンドの負荷を削減
コンプレッションGzip/Brotli エンコーディング
アクセス制御認証、IPフィルタリング
ログインリクエスト/エラーログ

サーバー構成例

# nginx - Virtual host configuration

server {

listen 80;

listen 443 ssl;

server_name example.com;

root /var/www/example;

index index.html;

ssl_certificate /etc/ssl/cert.pem;

ssl_certificate_key /etc/ssl/key.pem;

location / {

try_files $uri $uri/ =404;

}

location /api {

proxy_pass http://localhost:3000;

}

}

# Apache - .htaccess example

RewriteEngine On

RewriteCond %{HTTPS} off

RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

# Enable compression

<IfModule mod_deflate.c>

AddOutputFilterByType DEFLATE text/html text/css application/javascript

</IfModule>

Webサーバーアーキテクチャ

Modern Web Stack:

Internet

┌─────────────┐

│ CDN/WAF │

└─────────────┘

┌─────────────┐

│ Load Balancer│

└─────────────┘

│ │

┌─────┘ └─────┐

▼ ▼

┌───────────┐ ┌───────────┐

│ Web Server│ │ Web Server│

│ (nginx) │ │ (nginx) │

└───────────┘ └───────────┘

│ │

└────────┬────────┘

┌─────────────┐

│ App Server │

│ (Node/Python)│

└─────────────┘

┌─────────────┐

│ Database │

└─────────────┘

サーバー識別

検出方法情報収集
サーバーヘッダーソフトウェア名/バージョン
応答ヘッダー技術の積み重ねの手掛かり
エラーページデフォルトサーバテンプレート
タイミングパターンサーバー固有の動作
ファイル拡張子プラットフォームインジケーター

セキュリティの考慮事項

1. 非表示バージョン情報: ヘッダーからサーバーバージョンを削除します。

2. Disableディレクトリリスト: ファイルの列挙を防ぐ

3. TLS を適切に設定 : 現代のプロトコル、強力な暗号

4. 限界のサイズ: DoS攻撃を防ぐ

5. セキュリティヘッダの設定:CSP、HSTS、X-Frame-Options

6. 定期的な更新: 迅速なパッチ脆弱性

パフォーマンスの最適化

テクニックメリット
常に接続の再利用
Gzip/Brotliの特長より小さい応答
静的なキャッシュディスクI/Oを削減
ワーカーチューニングより多くの同時ユーザーを扱います
HTTP/2複数のリクエスト

ベストプラクティス

1. ニーズに基づいて選択:プロキシのためのnginx、柔軟性のためのApache

2. 分離静的/動的:静的、動的のためのサーバーのためのCDN

3. モニターリソース:CPU、メモリ、接続

4. 導入キャッシング: ブラウザ、プロキシ、サーバサイド

5. ログの設定: 解析のための構造ログ

6. スケールのための計画: 負荷分散、水平スケーリング

Webサーバーは、Webインフラの基盤であり、コンテンツをユーザーに確実に効率的に配信する重要なタスクを処理します。

この知識を実践する

DomScan の API を使用してドメインの可用性、状態などを確認します。