学習進捗 0h / 60h (0%)

Phase 1: 基礎理解

WebSocketの概念、ネットワーク技術、API基本構造を理解する基礎フェーズ

推奨学習時間
18.5-21.5時間

🎯 学習目標

  • ブラウザ標準WebSocket APIの基本概念と適用場面を理解する
  • WebSocketの11の主要カテゴリーの用途を理解し適用判断ができる
  • HTTP/1.1、HTTP/2、HTTP/3でのWebSocket対応の違いを理解する
  • End to End通信とHop by Hop通信の違いを理解する
  • WebSocketハンドシェイクのプロセスを詳細に説明できる

📋 前提知識

  • TypeScript/JavaScript の中級レベルの知識
  • HTTP プロトコルの基本理解
  • ネットワーク通信の基礎知識
  • 非同期処理(Promise/async-await)の理解

学習セクション

4つのセクションで段階的にWebSocketの基礎を理解します

1

WebSocket 入門

5-7時間
セクション開始

WebSocketの基本概念と適用場面を理解し、他技術との違いを学習

WebSocketとは何か

1時間

WebSocketの定義、基本概念、ブラウザ標準WebSocket APIの重要性

📚 学習内容
  • WebSocketの定義と基本概念
  • ブラウザ標準WebSocket APIの重要性
  • リアルタイム通信の必要性
  • WebSocketの歴史と標準化(RFC 6455)
💻 演習
  • ブラウザ開発者ツールでWebSocket通信を観察
  • 簡単なWebSocketテストサイトでの動作確認

HTTPの限界とWebSocketの優位性

1時間

HTTP通信の制限を理解し、WebSocketによる双方向通信の利点を学習

📚 学習内容
  • HTTPリクエスト/レスポンス型の制限
  • ポーリング手法の問題点
  • WebSocket APIによる双方向通信の実現
  • 2016年以降のブラウザ対応状況
💻 演習
  • ポーリングとWebSocketのパフォーマンス比較
  • ネットワークトラフィックの測定と分析

WebSocketの利用例と適用場面

2-3時間

WebSocketの11の主要カテゴリーと実際の適用事例を詳しく学習

📚 学習内容
  • リアルタイム通信(チャット、Discord、サポートチャット)
  • 共同編集(Google Docs風、コード共同編集)
  • 通知・アラート(在庫更新、リアルタイムアラート)
  • データ配信(株価、為替、スポーツスコア)
  • IoT連携(スマートホーム、センサー通知)
  • PWA統合(オフライン対応、Service Worker連携)
  • Webベースシミュレーション
  • バックエンド連携(GraphQL Subscriptions)
  • セキュリティ・監査
  • 金融・医療アプリケーション
  • VR/メタバース連携
💻 演習
  • 11カテゴリーからの適用場面選択演習
  • アーキテクチャ構成図の作成
  • 既存WebSocketアプリの分類・分析
  • 自分のプロジェクトでの適用可能性検討

WebSocket vs 他技術の比較理解

1時間

他の通信技術との違いを理解し、適切な技術選択ができるようになる

📚 学習内容
  • WebSocket vs WebTransport
  • WebSocket vs Server-Sent Events (SSE)
  • WebSocket vs Socket.IO(概要)
  • 使い分けの判断基準
💻 演習
  • 具体的な用途での技術選択演習
  • 現在のブラウザ対応状況調査
2

ネットワーク技術

6.5-7.5時間
セクション開始

WebSocketを支えるネットワーク技術の基盤を理解

WebSocketを理解するためのHTTP基礎

45分

HTTP/1.0とHTTP/1.1の違いとWebSocketとの関係

📚 学習内容
  • HTTP/1.0 vs HTTP/1.1の接続管理の違い
  • 持続的接続(Keep-Alive)による効率化
  • WebSocketがHTTP/1.1の持続的接続を前提とする理由
💻 演習
  • HTTP/1.0とHTTP/1.1の接続パターン比較
  • cURLコマンドでの接続ヘッダー確認

OSI参照モデルとWebSocketの位置

1時間

ネットワーク層とWebSocketの位置づけを理解

📚 学習内容
  • OSI 7層モデルの復習
  • WebSocket(セッション層)とSocket(トランスポート層)の違い
  • HTTPからWebSocketへのプロトコル昇格
💻 演習
  • Wiresharkを使ったパケット解析
  • WebSocketハンドシェイクの詳細観察

HTTP/1.1からHTTP/3までのWebSocket対応

2時間

各HTTPバージョンでのWebSocket動作の違いを学習

📚 学習内容
  • HTTP/1.1でのWebSocketハンドシェイクの基礎
  • HTTP/2環境でのWebSocket動作
  • HTTP/3 (QUIC)でのWebSocketの位置づけ
  • WebTransport APIとの比較・将来性
💻 演習
  • 各HTTPバージョンでのWebSocket接続テスト
  • パフォーマンス比較測定
  • HTTP/3対応サービスでの動作確認

WebSocket接続確立プロセス

1.5-2.5時間

WebSocket接続確立の詳細なプロセスを理解

📚 学習内容
  • End to End vs Hop by Hop通信の基礎
  • HTTP/1.1 Upgradeハンドシェイクの詳細
  • WebSocketキーの生成と検証
  • プロトコルネゴシエーション
  • プロキシ・ファイアウォール環境での動作
💻 演習
  • curlコマンドでWebSocketハンドシェイクを手動実行
  • ハンドシェイクヘッダーの検証実装
  • プロキシ環境でのWebSocket接続テスト

セキュリティとポート管理

1時間

WebSocketのセキュリティ要件とポート管理

📚 学習内容
  • ws(ポート80)とwss(ポート443)の違い
  • Originチェックとセキュリティ
  • ファイアウォール・プロキシとの関係
  • CORSとの違い
💻 演習
  • wss接続の設定と証明書管理
  • Originチェックの実装
3

WebSocket API の基本構造

5-6時間
セクション開始

WebSocket APIの基本的な構造と動作メカニズムを理解

WebSocket状態とライフサイクル

30分

WebSocketの4つの状態と状態遷移を実際の接続で学習

📚 学習内容
  • ReadyStateの4つの状態(CONNECTING, OPEN, CLOSING, CLOSED)
  • 状態遷移のタイミングとイベントハンドラ
  • 正常なクローズハンドシェイクと異常切断
  • Close Codeによる切断理由の識別
💻 演習
  • リアルタイム状態可視化での接続観察
  • 異なる公開サービスでの状態比較

WebSocket接続ライフサイクル詳細

1.5時間

WebSocket接続の開始から終了までの詳細なライフサイクル

📚 学習内容
  • 接続確立(ハンドシェイク)の詳細プロセス
  • データ通信フェーズでの双方向通信
  • 接続終了(クローズハンドシェイク)
  • 異常切断の検出と処理
💻 演習
  • TypeScriptでWebSocket接続状態の管理実装
  • 接続品質の監視システム作成

イベントベース通信モデル

2時間

WebSocketのイベントドリブンな通信モデルを理解

📚 学習内容
  • onopen, onmessage, onclose, onerrorイベント
  • RxJS経験者向け: ObservableパターンでのWebSocket管理
  • Svelteへの移行: Svelteストアでの WebSocket管理
  • Promise/async-awaitでのラッピング
💻 演習
  • イベントハンドラーの実装
  • SvelteストアでのWebSocket状態管理

クライアント・サーバー役割分担

1-2時間

WebSocketにおけるクライアントとサーバーの責務

📚 学習内容
  • クライアント側の責務
  • サーバー側の責務
  • 状態管理とセッション管理
💻 演習
  • Node.js + TypeScript + 標準wsライブラリでWebSocketサーバー実装
  • 複数クライアント接続管理
4

WebSocket API の基本操作

4-5時間
セクション開始

ブラウザ標準WebSocket APIの基本的な操作方法を習得

WebSocket URL と接続確立

1時間

WebSocket URLの形式と接続の確立方法

📚 学習内容
  • WebSocket URL形式(ws://, wss://)
  • サブプロトコルの指定
  • 接続オプションとヘッダー
💻 演習
  • 環境別(開発・本番)の接続設定
  • 接続パラメータの動的生成

ブラウザ標準WebSocket API実装

2-3時間

ブラウザ標準APIを使った実装方法の習得

📚 学習内容
  • ブラウザ標準WebSocket APIの基本使用法
  • SvelteKitでのクライアント側WebSocket処理
  • Svelteコンポーネントでのリアルタイムデータ表示
  • TypeScriptでの型定義とSvelteでの利用
💻 演習
  • 基本的なWebSocket接続の実装
  • Svelteストア形式のWebSocketクライアント作成

接続失敗と再接続処理

1-2時間

堅牢な接続管理と再接続メカニズムの実装

📚 学習内容
  • 接続失敗の種類と原因
  • 指数バックオフによる再接続
  • 接続品質の監視
💻 演習
  • 堅牢な再接続ロジックの実装
  • 接続状態インジケーターの作成

WebSocket 実践ガイド について

ブラウザ標準WebSocket APIを中心とした リアルタイムWebアプリケーション実践ガイドです。 TypeScript/JavaScript中級者を対象とした 50-60時間の構造化カリキュラムを提供します。

技術スタック

フロントエンド: SvelteKit + TypeScript
スタイリング: TailwindCSS
ドキュメント: MDsveX
ターゲット: PWA対応のリアルタイムアプリ

© WebSocket 実践ガイド. 学習目的で作成されました。

GitHub
Made with SvelteKit & TailwindCSS