かべぎわブログ

ブログです

最近しらべたこと

1. ブラウザのページ表示の流れ

概要

  1. URLを入力し、Enterを押す
  2. キャッシュの確認(ローカルキャッシュ・DNSキャッシュなど)
  3. DNS解決(ドメイン名 → IPアドレスに変換)
  4. Webサーバーへのリクエスト(TCP接続 & HTTPリクエスト送信)
  5. Webサーバーがレスポンスを返す(HTML, CSS, JavaScriptなど)
  6. ブラウザがレンダリング(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の組み合わせが推奨。