Web15 件の記事

Web の記事

HTTP/3 と QUIC 入門 - なぜ HTTP は TCP を捨てて UDP に移ったのか

HTTP/3 と QUIC 入門 - なぜ HTTP は TCP を捨てて UDP に移ったのか

19

HTTP/3 と、その土台となる新トランスポート QUIC を、一次ソースの RFC を軸に入門解説します。HTTP/2 が抱える TCP 上の Head-of-Line ブロッキング問題から出発し、QUIC が UDP の上でストリーム多重化・TLS 1.3 統合・0-RTT/1-RTT ハンドシェイク・Connection ID によるコネクションマイグレーションをどう実現するのかを直感的に整理。RFC 9000/9001/9002/9114/9204 の対応や、ブラウザ・サーバー・CDN の対応状況、curl や DevTools での確認方法、注意点とトレードオフまで Web 開発者向けにまとめます。

DNS の仕組み入門 - 名前解決・レコード種別・TTL とキャッシュを理解する

DNS の仕組み入門 - 名前解決・レコード種別・TTL とキャッシュを理解する

23

DNS(ドメインネームシステム)の名前解決の仕組みを、一次ソースである RFC を軸に整理します。ルート・TLD・権威サーバーの階層、再帰リゾルバとスタブリゾルバ、A/AAAA/CNAME/MX/NS/SOA/TXT/CAA/SRV/PTR などのレコード種別、再帰と反復の解決の流れ、TTL とキャッシュ、ネガティブキャッシュ(RFC 2308)、ポート53と UDP/TCP・EDNS0(RFC 6891)、DNSSEC(RFC 4033)、DoH(RFC 8484)/DoT(RFC 7858)まで、Web 開発者・インフラ担当者向けにまとめます。

Astro 7 リリース - コンパイラもMarkdownもRust化、Vite 8でビルドが最大61%速く

Astro 7 リリース - コンパイラもMarkdownもRust化、Vite 8でビルドが最大61%速く

7

Astro 7 が2026年6月22日にリリースされました。.astro コンパイラを Go から Rust へ書き換え、Markdown/MDX 処理系に Rust 製の Sätteri を採用(デフォルト化)、バンドラは Vite 8(Rust 製 Rolldown)。ビルドは公式報告で15〜61%高速化。Queued Rendering の安定化、src/fetch.ts による高度ルーティング、Route Caching、AI エージェント検出付きのバックグラウンド開発サーバーなどの新機能と、HTML 厳格化や Sätteri デフォルト化(remark/rehype は明示オプトイン)といった6→7の破壊的変更を、Astro 公式を一次ソースに整理します。

Webhook 受信側のベストプラクティス - 署名検証・リトライ・冪等性・順序

Webhook 受信側のベストプラクティス - 署名検証・リトライ・冪等性・順序

9

Webhook を安全・堅牢に受け取るための設計を実務目線で整理します。HMAC-SHA256 による署名検証とリプレイ攻撃対策(タイムスタンプ)、生のボディで検証する理由、定数時間比較、at-least-once 配信を前提にした冪等な処理、保証されない配信順序への備え、まず素早く 2xx を返して非同期処理する受信パターン、未知イベントの扱い、シークレットのローテーションや CSRF 除外まで、Stripe・GitHub・Standard Webhooks を一次ソースにまとめます。

タイムゾーンと日付の正しい扱い方 - UTC・ISO 8601・夏時間の罠と JavaScript Date

タイムゾーンと日付の正しい扱い方 - UTC・ISO 8601・夏時間の罠と JavaScript Date

9

日付とタイムゾーンの扱いを実務目線で整理します。UTC とオフセットとIANAタイムゾーン(Asia/Tokyo)の違い、ISO 8601 / RFC 3339 の推奨フォーマット、Unixエポック、JavaScript の Date のハマりどころ(月が0始まり・日付のみ文字列はUTC解釈・getTimezoneOffsetの符号)、夏時間(DST)で生じる「存在しない時刻」と「重複する時刻」、そして「保存はUTC・表示時に変換・IANA識別子で扱う」などのベストプラクティスを、MDN・RFC 3339・IANA を一次ソースにまとめます。

REST API設計の基礎と冪等性 - HTTPメソッドの意味と Idempotency-Key

REST API設計の基礎と冪等性 - HTTPメソッドの意味と Idempotency-Key

10

REST API設計の基礎を、HTTPメソッドの意味(safe / idempotent)から整理します。リソース指向のURL設計、GET/POST/PUT/PATCH/DELETE の使い分けと冪等性の早見表、なぜ冪等性がリトライや二重課金防止に重要か、POST を安全にリトライする Idempotency-Key の仕組み、ステータスコードの使い分け、RFC 9457 のエラー形式まで、RFC 9110・MDN・Stripe を一次ソースにまとめます。

WebSocket・SSE・ポーリングの使い分け - リアルタイム通信の選び方

WebSocket・SSE・ポーリングの使い分け - リアルタイム通信の選び方

10

Webでリアルタイムにデータを届ける3つの方法 — ポーリング(short / long polling)、Server-Sent Events(SSE / EventSource)、WebSocket を実務目線で比較します。通信方向・プロトコル・自動再接続・バイナリ対応の違い、コード例、SSE の HTTP/1.1 接続数上限やプロキシのバッファリング、WebSocket のスケールと認証(カスタムヘッダが使えない)といった落とし穴、そして用途別の選び方まで、MDN・RFC 6455 / 6202 を一次ソースにまとめます。

Astro 6 の新機能 - 開発と本番の差を埋める新 astro dev、Fonts API、移行の注意点

Astro 6 の新機能 - 開発と本番の差を埋める新 astro dev、Fonts API、移行の注意点

9

Astro 6 の新機能と移行ポイントを公式リリースノートをもとに整理します。Vite の Environment API を使い本番ランタイムを開発時に走らせる新しい astro dev、組み込み Fonts API、Live Content Collections と CSP の安定化、実験的な Rust コンパイラ。さらに 6.1 の変更と、Node 22.12 必須・Vite 7・レガシー Content Collections 廃止・ViewTransitions から ClientRouter への置き換えといった 5.x からの破壊的変更まで、Astro 6.0/6.1 を一次ソースでまとめます。

CloudflareがVoidZeroを買収 - Vite / Vitest / Rolldown / Oxc エコシステムの今後とVite+

CloudflareがVoidZeroを買収 - Vite / Vitest / Rolldown / Oxc エコシステムの今後とVite+

10

2026年6月4日、CloudflareがVite・Vitest・Rolldown・Oxcを擁するVoidZeroを買収しました。VoidZeroとは何か、Evan Youが統一を進めてきたツールチェーン、当初有償から完全MITオープンソースへ転換したVite+、買収の狙い(AI-nativeなWebとCloudflareへの統合)、そして「ベンダー中立性は保たれるのか」という開発者の懸念まで、Cloudflare・VoidZero・Viteの公式発表を一次ソースに整理します。

Cookie・セッション・SameSite の基礎 - Secure / HttpOnly と CSRF・CORS の関係

Cookie・セッション・SameSite の基礎 - Secure / HttpOnly と CSRF・CORS の関係

11

Web認証の土台となる Cookie・セッション・SameSite を実務目線で整理します。Set-Cookie の属性(Expires/Max-Age・Domain/Path)、Secure と HttpOnly が防ぐ脅威、SameSite の Strict/Lax/None の違いと None に Secure が要る理由、サーバー側セッションとログイン後の ID 再生成、SameSite だけで CSRF を防ぎきれない理由、クロスオリジンで Cookie を送る CORS の条件、__Host-/__Secure- プレフィックスまで、MDN・RFC 6265bis・OWASP を一次ソースにまとめます。

CORS の仕組みとハマりどころ - プリフライト・credentials・Allow-Origin を理解する

CORS の仕組みとハマりどころ - プリフライト・credentials・Allow-Origin を理解する

10

CORS(オリジン間リソース共有)を実務目線で整理します。同一オリジンポリシーとの関係、単純リクエストとプリフライト(OPTIONS)の条件、Access-Control-Allow-Origin などの各ヘッダ、credentials 付きで * が使えない理由、Vary: Origin とキャッシュ、そして「No Access-Control-Allow-Origin header」エラーの意味と対処まで、MDN と WHATWG Fetch Standard を一次ソースにまとめます。CORS はブラウザの仕組みであって認可ではない、という勘所も。

文字コードと UTF-8 / Unicode の基礎 - 文字化けの原因と、length が合わない理由

文字コードと UTF-8 / Unicode の基礎 - 文字化けの原因と、length が合わない理由

11

文字コードを実務目線で整理します。Unicode(文字集合・コードポイント)と UTF-8/UTF-16(符号化方式)の違い、UTF-8 の可変長バイト構造、JavaScript の文字列が UTF-16 ベースゆえに String.length が見た目の文字数と合わない理由、結合文字・絵文字・正規化(NFC/NFD)、そして文字化けの典型原因(エンコーディング不一致・MySQL の utf8 と utf8mb4・BOM・meta charset)と対策まで、Unicode 公式・RFC 3629・WHATWG を一次ソースにまとめます。

JWT(JSON Web Token)の仕組みと正しい使い方 - 署名・検証とセキュリティの落とし穴

JWT(JSON Web Token)の仕組みと正しい使い方 - 署名・検証とセキュリティの落とし穴

12

JWT(JSON Web Token)を実務目線で整理します。header.payload.signature の3部構造と Base64URL、iss/sub/aud/exp などのクレーム、HS256 と RS256/ES256 の使い分け、検証の流れ、そして alg:none 攻撃・アルゴリズム混同・「JWT は暗号化ではないので中身は誰でも読める」という誤解・失効の難しさといった落とし穴まで、RFC 7519/7515/7518/8725 と OWASP を一次ソースにまとめます。

HTTP ステータスコードの実践的な使い分け - 401 と 403、3xx の違いをちゃんと選ぶ

HTTP ステータスコードの実践的な使い分け - 401 と 403、3xx の違いをちゃんと選ぶ

9

HTTP ステータスコードを、API 設計で迷いやすいポイントを中心に整理します。2xx/3xx/4xx/5xx の意味と使い分け、401 と 403 の違い、301/302/307/308 のメソッド保持、200 でエラーを返すアンチパターン、404 と 410、429 と Retry-After、422 の位置づけまで、RFC 9110 や MDN といった一次ソースをもとにまとめます。