1. ブラウザのページ表示の流れ
概要
- URLを入力し、Enterを押す
- キャッシュの確認(ローカルキャッシュ・DNSキャッシュなど)
- DNS解決(ドメイン名 → IPアドレスに変換)
- Webサーバーへのリクエスト(TCP接続 & HTTPリクエスト送信)
- Webサーバーがレスポンスを返す(HTML, CSS, JavaScriptなど)
- ブラウザがレンダリング(HTML解析 → CSS適用 → JavaScript実行 → 画面表示)
2. TCPと UDP の違い
プロトコル | TCP(Transmission Control Protocol) | UDP(User Datagram Protocol) |
---|---|---|
接続の確立 | あり(3ウェイハンドシェイク) | なし |
信頼性 | 高い(データが順番通りに届く) | 低い(データが欠ける可能性あり) |
速度 | 遅め(再送制御があるため) | 速い(制御が少ない) |
用途 | Web通信(HTTP, HTTPS)、メール(SMTP, IMAP) | 動画配信、音声通話(VoIP)、DNS |
3. HTTPとHTTPSの違い
項目 | HTTP | HTTPS |
---|---|---|
暗号化 | なし(平文で通信) | あり(TLS/SSLを使用) |
安全性 | 低い(盗聴・改ざんされやすい) | 高い(通信が暗号化される) |
ポート番号 | 80 | 443 |
用途 | 一部のローカルネットワーク | セキュアなWebサイト(ログイン、決済など) |
4. データベースのインデックス
意識すべきポイント
- WHEREやJOINでよく使うカラムにインデックスを設定
- 更新が多いカラムにはインデックスをつけすぎない(更新が遅くなる)
- 複合インデックスを活用(検索条件が複数ある場合)
- EXPLAINでクエリの実行計画を確認
- パーティショニングやアーカイブでデータ量を調整
5. ACID特性(データベースのトランザクション)
ACID特性 | 説明 | 銀行振込の例 |
---|---|---|
A(原子性) | 全て成功するか、全て失敗する | 送金中にエラーが起きたら、処理をキャンセル |
C(一貫性) | データのルールを守る | 残高がマイナスにならない |
I(分離性) | 同時実行でも影響を受けない | 2人が同時に同じ口座から引き出せない |
D(永続性) | 成功した処理は消えない | システム障害でも振込が消えない |
6. モノリシックアーキテクチャとマイクロサービス
項目 | モノリシック | マイクロサービス |
---|---|---|
構成 | 1つの大きなアプリ | 機能ごとに小さな独立サービス |
デプロイ | 一括デプロイ | サービスごとに独立デプロイ |
スケーリング | 全体をスケール | 必要な部分のみスケール |
障害の影響範囲 | 全体に影響 | 1つのサービスだけ影響 |
7. 二分探索木(BST)のユースケース
- データ検索・ソート(住所録、辞書検索、DBインデックス)
- ランキング・スコア管理(ゲームのリーダーボード)
- 動的なデータ管理(予約管理、メモリ管理)
- アルゴリズムの基盤(ヒープ、最短経路探索)
8. マルチホーミング
- 複数のインターネット接続(ISP)を利用し、冗長化や負荷分散を実現する技術。
- 企業ネットワークやデータセンターで利用。
- BGP(Border Gateway Protocol)を使用して最適な経路を選択。
9. IPマスカレード(NAPT)
- プライベートIPアドレスをグローバルIPに変換し、1つのIPで複数のデバイスがインターネット接続可能にする技術。
- ルーターがパケットの送信元IPとポート番号を書き換える。
- 家庭のWi-Fiルーターや企業のネットワークで利用。
10. SOAとマイクロサービスの粒度の違い
機能 | SOA(大きな単位) | マイクロサービス(細かい単位) |
---|---|---|
顧客管理 | ユーザー認証 + プロフィール管理 | 認証サービス(ログイン) + プロフィール管理 |
商品管理 | 商品情報 + 在庫管理 | 商品カタログ + 在庫管理 |
決済処理 | クレカ決済 + ポイント決済 | クレカ決済サービス + ポイント決済サービス |
11. C&Cサーバ(Command & Control Server)
- マルウェアやボットネットを遠隔操作する指令サーバ。
- DDoS攻撃、ランサムウェア、データ窃取などの指示を送る。
- 通信手法:DNS、P2P、SNS利用など。
- 対策:ファイアウォール、IDS/IPS、DNSフィルタリング。
12. サイドチャネル攻撃
- 暗号アルゴリズムではなく、時間・電力・電磁波・音などの副次的な情報を解析する攻撃。
- 主な攻撃手法
- 時間解析攻撃(Timing Attack)
- 電力解析攻撃(Power Analysis)
- 電磁波解析攻撃(EM Analysis)
- キャッシュ攻撃(Cache Attack)
- 対策:ランダム化、シールド、一定時間処理(コンスタントタイム処理)。
13. プリエンプション(Preemption)
- OSが実行中のプロセスを強制的に中断し、他のプロセスにCPUを割り当てる仕組み。
- リアルタイム処理やマルチタスクOSで重要。
- ノンプリエンプティブスケジューリングとの違い
- プリエンプティブ:OSが制御(Windows, Linux, macOS)
- ノンプリエンプティブ:プロセスが自らCPUを解放(MS-DOSなど)
14. SPF(Sender Policy Framework)
- DNSのTXTレコードに送信サーバーのIPを登録し、不正な送信を防ぐ仕組み。
- なりすましメール対策に有効。
- 設定は送信ドメインの管理者が行う(メール事業者が情報提供)。
- SPF + DKIM + DMARCの組み合わせが推奨。