書籍概要

WEB+DB PRESS Vol.123

バックナンバー一覧

発売日
更新日

概要

Vol.1~120までのPDFを収録したDVD-ROMが付いているお得な総集編もあります!

WEB+DB PRESS総集編[Vol.1~120]
https://gihyo.jp/book/2021/978-4-297-12215-7

特集1
ついに登場!!! より速く,より安全に,より効率的に
HTTP/3入門

本特集では,新しく登場したHTTP/3とQUICのしくみをゼロから徹底解説します。HTTP/3では,TCPに代わって新しく策定されたQUICというプロトコルを活用し,より速く,より安全に,より効率的にHTTPメッセージをやりとりします。ブラウザやWebサービスでは,すでにHTTP/3とQUICの利用が開始されています。Web開発者である本誌読者のみなさんには必読の特集です!

特集2
Reactベースの柔軟・省設定フレームワーク
いまどきNext.js

Next.jsはイベントのランディングページのような静的なサイトを構築することもできれば,ブログやニュースサイトといった動的なサイトを構築することもできる,幅広いニーズに対応したフロントエンドのフレームワークです。Next.jsには非常に多くの機能がありますが,本特集では中核となる「段階的な静的生成」の機能について深く解説します。

特集3
脆弱性への緊急対応の手立て
実践WAF

WAF(Web Application Firewall)は,Webアプリケーションのセキュリティを保護するための手段の1つです。脆弱性のある機能を停止することなく,発生した脆弱性を一時的に緩和できます。本特集では,「WAFとは何か」から説き起こし,OSS(Open Source Software)のWAFであるModSecurityの基本設定と使い方,さらにはマネージドWAFサービスであるAWS WAF について紹介します。

目次

特集1
ついに登場!!! より速く,より安全に,より効率的に
HTTP/3入門

  • 第1章:進化するHTTPの歩み
    HTTP/1.1とHTTP/2をおさらいし,HTTP/3の基本を知る……後藤 ゆき
  • 第2章:詳解QUIC
    TCPに代わり下位層で使用する新しいトランスポートプロトコル……後藤 ゆき
  • 第3章:詳解HTTP/3
    いかにしてQUICを活用し,いかにして高速化を実現したか……後藤 ゆき
  • 第4章:実践HTTP/3
    実装を触り,通信を観測し,理解を深める……後藤 ゆき
  • 第5章:HTTP/3の拡張と応用
    機能を追加し,より効率的に,より便利に……後藤 ゆき

特集2
Reactベースの柔軟・省設定フレームワーク
いまどきNext.js

  • 第1章:Next.jsというフレームワークの強み
    アプリケーションの要件に対応できる多様なHTML生成手段の提供……古川 陽介
  • 第2章:あっという間にできる環境構築
    ローカル・ステージング・本番までをVercelプラットフォームにお任せ……吉井 健文
  • 第3章:段階的な静的生成によるサイト設計
    生成済みページを随時再生成するIncremental Static Regenerationのしくみ……吉井 健文
  • 第4章:静的生成に取り組む下準備
    公開範囲が多様なGitHub APIをセッティング……吉井 健文
  • 第5章:作って学ぶ静的生成の使い分け
    GitHub情報の公開範囲にあわせたアプリケーションの実装……吉井 健文
  • 第6章:Next.jsの注目機能と今後
    ベストプラクティスを実践しやすく……古川 陽介

特集3
脆弱性への緊急対応の手立て
実践WAF

  • 第1章:WAFって何だ?
    Webアプリケーションのためのファイアウォール……藤原 涼馬
  • 第2章:ModSecurityの基本
    オープンソースのソフトウェア型WAFの使い方……藤原 涼馬
  • 第3章:ModSecurityの実践
    よくある脆弱性の緊急対応に挑戦……藤原 涼馬
  • 第4章:AWS WAFの基本,メリット,使い方
    マネージドサービス型WAFを体験……藤原 涼馬

一般記事

  • さようならInternet Explorer
    対応終了告知/コード削除の準備/最新技術の選定……雑司ヶ谷

連載

  • Ruby 3標準添付ライブラリ紹介
    【第1回】パッケージ管理を快適に行うためのツールたち ……RubyGems/Bundler……西山 和広
  • PHPで複雑さに立ち向かう
    【第1回】PHPで型と生きる ……Psalmの静的解析による100%型の付いたコード……五十嵐 進士
  • フロントエンド羅針盤 ── Web体験向上へのアプローチ
    【第1回】Webの品質とユーザー体験の再発見 ……スコアだけで満足しないLighthouseの読み方……佐藤 歩
  • 見なおそう! モダンJavaの流儀
    【第7回】どうやってオブジェクトを生成していますか? ……new演算子に頼らない生成手法……櫻庭 祐一
  • 現場のPython ── システム開発も! 機械学習も!
    【第7回】Django + GraphQLでAPI実装 ……Graphene-Djangoの基礎を最速マスター!……James Van Dyne
  • Perl Hackers Hub
    【第68回】他言語のライブラリをPerlに移植する……うたがわ きき 監修:牧 大輔,福本 貴之,松木 雅幸,大沢 和宏
  • Goに入りては…… ── When In Go...
    【第25回】Go構造体のメモリレイアウト ……構造体のサイズを最適化する……牧 大輔

コラム

  • 縁の下のUIデザイン ── 少しの工夫で大きな改善!
    【第25回】デザインシステムで,使い勝手/デザイン/コードに統一感を持たせる……池田 拓司
  • 漫画から学ぶマネジメント
    【第2回】『SLAM DUNK』の名監督に学ぶ育成スタンス……是澤 太志
  • 教えて! 最新技術 ── テックコミュニティの現場から
    【最終回】AIのこれまでとこれから ……大城 信晃さん/松村 優哉さん……関 満徳
  • はまちちゃんとわかばちゃんのREADER'S FORUM ── 読者のページ
    【第74回】……はまちや2,竹原

サポート

ダウンロード

(2021年6月14日更新)

■ご注意
  • 本コーナーは,本誌記事参考用資料としてのご提供を目的としております。
  • 本誌記載の内容およびサポートサイトで公開しているサンプルコードに基づく運用の結果について,記事の筆者,プログラムの作者/提供元,(株)技術評論社は一切の責任を負いかねます。ご自身の責任のもと,ご使用ください。
  • 各サンプルファイル/ソースコードには,個別に,ライセンスやREADMEファイルなどで注意事項/制限事項が添付されている場合がございます。その場合,該当のライセンス,注意事項/制限事項を優先して適用とさせていただきますので,ダウンロード後,内容をご確認ください。

特集2「いまどきNext.js」

特集3「実践WAF」

連載

  • 「PHPで複雑さに立ち向かう」
    本記事で使用されたソースコード(執筆者GitHubリポジトリ)
  • 「現場のPython ── システム開発も! 機械学習も!」
    本記事で使用されたソースコード
  • 「Perl Hackers Hub」
    本記事で使用されたソースコード
  • 「Goに入りては…… ── When In Go...」
    本記事で使用されたソースコード

正誤表

本誌の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。

(2021年12月20日最終更新)

特集1「HTTP/3入門」第2章 P.18 左段「仕様」の8行目

順に、QUICのトランスポートプロトコルとしての機能を定めたもの、パケットロスの検出や、帯域を逼迫させないように通信を行う輻輳制御について定めたもの、TLS(Transport Layer Security)を使用した暗号化のしくみを定めたものです。
順に、QUICのトランスポートプロトコルとしての機能を定めたもの、TLS(Transport Layer Security)を使用した暗号化のしくみを定めたもの、パケットロスの検出や、帯域を逼迫させないように通信を行う輻輳制御について定めたものです。

補足情報

特集1「HTTP/3入門」

(2022年6月29日更新)

2022年6月に,本特集で解説したHTTP/3を含むHTTP関連の仕様が正式なRFCとなりました。ここでは特集時点からの変更点を解説します。

第1章「進化するHTTPの歩み」
「HTTPのバージョンとセマンティクス」

誌面では,HTTPのセマンティクスおよびHTTP/1.1の仕様について,改訂作業を行っていると説明しました。

2022年6月に正式にRFCとして出版されました。仕様の内容については,誌面での説明から変更はありません。RFCは次のリンクから参照できます。

「HTTP/2の仕様改訂の動き」

誌面では,RFC 7540で定義されているHTTP/2の改訂版を出す取り組みが行われていることを説明しました。

草案の段階ではHTTP/2 bisと呼ばれていましたが,2022年6月にHTTP/2のRFCとして出版されました。正式なRFCとなったためHTTP/2 bisではなく,こちらがHTTP/2の仕様ということになります。

RFC 7540からの変更点として次の項目が挙げられます。

  • RFC 9110で定義される用語に準拠
  • RFC 7540で定義される優先度制御の廃止
  • HTTP/1.1から通信をHTTP/2に切り替えるアップグレードのしくみを廃止

RFCは次のリンクから参照できます。

「HTTP/3の基本」

誌面では,HTTP/3とQPACKの仕様は草案段階でした。

2022年6月にRFCとして出版されました。誌面掲載時は,QPACKは「QPACK: Header Compression for HTTP/3」という仕様名でしたが,セマンティクスの用語に合わせて「QPACK: Field Compression for HTTP/3」に変更されています。仕様の内容については,誌面での説明から変更はありません。RFCは次のリンクから参照できます。

第3章「詳解HTTP/3」
「優先度制御 ── 速く届けたいもの,遅くてもよいもの」

誌面では,新しい優先度制御のしくみとして「Extensible Prioritization Scheme for HTTP」を説明しました。

この仕様は,2022年6月にRFCとして出版されました。仕様の内容については,誌面での説明から変更はありません。RFCは次のリンクから参照できます。

第4章「実践HTTP/3」
「Curlによる確認」

Curlのビルド手順が更新されています。

誌面では,次のとおりでした。


$ curl https://sh.rustup.rs -sSf|sh
$ git clone https://github.com/cloudflare/quiche \
 --recursive
$ cd quiche
$ cargo build --release \
 --features ffi,pkg-config-meta,qlog
$ mkdir deps/boringssl/src/lib
$ ln -vnf $(find target/release \
 -name libcrypto.a -o -name libssl.a) \
 deps/boringssl/src/lib/

$ cd ..
$ git clone https://github.com/curl/curl
$ cd curl
$ ./buildconf
$ ./configure \
 LDFLAGS="-Wl,-rpath,$PWD/../quiche/target/release" \
 --with-ssl=$PWD/../quiche/deps/boringssl/src \
 --with-quiche=$PWD/../quiche/target/release
$ make

2022年6月現在の手順は次のとおりになります。


$ curl https://sh.rustup.rs -sSf|sh
$ git clone --recursive https://github.com/cloudflare/quiche
$ cd quiche
$ cargo build --package quiche --release --features ffi,pkg-config-meta,qlog
$ mkdir quiche/deps/boringssl/src/lib
$ ln -vnf $(find target/release -name libcrypto.a -o -name libssl.a) quiche/deps/boringssl/src/lib/

$ cd ..
$ git clone https://github.com/curl/curl
$ cd curl
$ autoreconf -fi
$ ./configure LDFLAGS="-Wl,-rpath,$PWD/../quiche/target/release" --with-openssl=$PWD/../quiche/quiche/deps/boringssl/src --with-quiche=$PWD/../quiche/target/release
$ make

なお,Curlのビルドの最新手順は公式であるHTTP3 (and QUIC)を参照してください。

第5章「HTTP/3の拡張と応用」
「QUICの拡張」

誌面では,QUICの拡張としてDATAGRAMフレームを定義する「An Unreliable Datagram Extension to QUIC」について説明しました。

DATAGRAMフレームの仕様は,2022年3月にRFCとして出版されました。仕様の内容については,誌面での説明から変更はありません。RFCは次のリンクから参照できます。

また,合わせて紹介した「Using QUIC Datagrams with HTTP/3」については,標準化の議論の中で「HTTP Datagrams and the Capsule Protocol」と変更されています。こちらについては,もともとはHTTP/3を前提としたしくみでしたが,HTTP/1.1やHTTP/2で通信を行うプロキシでもDATAGRAMフレームを転送可能にするため再設計されております。現在の草案は次のリンクから参照できます。

「MASQUE ── 通信のトンネリング」

誌面では,「CONNECT-UDPメソッド」「CONNECT-IPメソッド」を用いてトンネリングのための通信路を確立すると説明しました。

最新の草案では,CONNECTメソッドおよび:protocol擬似ヘッダを使う形式に変更されています。現在の草案は次のリンクから参照できます。

商品一覧