頂き物なのに2年ぐらい寝かせてしまっていました。
ハイパフォーマンス ブラウザネットワーキング ―ネットワークアプリケーションのためのパフォーマンス最適化
- 作者: Ilya Grigorik,和田祐一郎,株式会社プログラミングシステム社
- 出版社/メーカー: オライリージャパン
- 発売日: 2014/05/16
- メディア: 大型本
- この商品を含むブログ (3件) を見る
ネットワークスペシャリストの勉強になるような内容。(より実戦的だが、ページ数は少ない。)
非常に面白く、一気に読みしました(ちょっと時間掛かったけど)。
TCP/UDP、TCPのチューニング、HTTP1の問題点(HoLブロッキングなど)とHTTP2、XHR、SSE、WebSocket、WebRTC についてまとまって記載されています。
HTTP/1時代のチューニングであるドメインシャーディングひどいなぁとか、
証明書チェーンのサイズ(証明書にルート証明書を含める必要はない)も気にしないといけないとか、
ポーリングは、モバイルネットワークとしては非常に高コストで電源消費量も多いとか、
色々ためになります。
目次
1章 レイテンシ・帯域幅入門 2章 TCPの構成要素 3章 UDPの構成要素 4章 TLS 5章 ワイヤレスネットワーク入門 6章 WiFi 7章 モバイルネットワーク 8章 モバイルネットワークの最適化 9章 HTTPの歴史 10章 Webパフォーマンス入門 11章 HTTP 1.x 12章 HTTP 2.0 13章 アプリケーション配信最適化 14章 ブラウザネットワーク入門 15章 XMLHttpRequest 16章 Server-Sent Events 17章 WebSocket
もう少し細かいのは、以下で確認できます。 O'Reilly Japan - ハイパフォーマンス ブラウザネットワーキング
余談(dns-prefetch subresource prefetch prerender)
これ初めて知ったので少し調べて見ました。
<link rel="dns-prefetch" href="//hostnme_to_resolve.com"> <link rel="subresource" href="//javascript/myapp.js"> <link rel="prefetch" href="//images/big.jpeg"> <link rel="prerender" href="//example.org/next_page.html">
詳しい説明は触れられていませんが、雑に説明すると、dns-prefetch DNSの事前接続。
subresource は同一ページ内の遅延読み込み、prefetch は次のページのコンテンツの先読み、prerender はレンダリングまで行う。
という感じで、あれ結構いいのでは?と思いましたが、、、
ブラウザ対応状況
ブラウザの対応状況は記載されていましたが、古いので http://caniuse.com を見てみると
- dns-prefetch
SafariではNG - subresource
IE/EdgeはNG、SafariはPreviewでは実装。 - prefetch
SafariはNG。 - prerender
Firefox、SafariはNG。なぜかChoromeは途中からサポート対象外。
まとめ
あれ?特定状況下でしか使えないやつらでした。。