ハイパフォーマンス ブラウザネットワーキング読了

頂き物なのに2年ぐらい寝かせてしまっていました。

ハイパフォーマンス ブラウザネットワーキング ―ネットワークアプリケーションのためのパフォーマンス最適化

ハイパフォーマンス ブラウザネットワーキング ―ネットワークアプリケーションのためのパフォーマンス最適化

ネットワークスペシャリストの勉強になるような内容。(より実戦的だが、ページ数は少ない。)
非常に面白く、一気に読みしました(ちょっと時間掛かったけど)。
 
TCP/UDPTCPのチューニング、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 を見てみると

まとめ

あれ?特定状況下でしか使えないやつらでした。。