リソースタイミングAPIを見ていて分からなかった単語を調べた
次の例は、リソース タイミング プロパティを使用して、リダイレクション (
redirectStart
およびredirectEnd
)、DNS ルックアップ (domainLookupStart
およびdomainLookupEnd
)、TCP ハンドシェイク (connectStart
およびconnectEnd
)、および応答 (responseStart
およびresponseEnd
) にかかる時間を計算する方法を示しています。この例では、フェッチおよび要求開始フェーズの開始 (それぞれfetchStart
およびrequestStart
) から応答が終了するまでの時間 (responseEnd
) も計算します。このタイミング データは、リソースのロード フェーズの詳細なプロファイルを提供し、このデータを使用してパフォーマンスのボトルネックを特定することができます。
Using the Resource Timing API - Web APIs | MDN
リダイレクション(リダイレクト)
HTTPで、サーバにリクエストがあった時に、ステータスコードが 3から始まり(例: 301 Moved Permanently)、Location ヘッダーがリダイレクト先の URL をもつ、レスポンスを返す事で、リダイレクトさせる事ができる。
DNS(ドメインネームシステム) ルックアップ
ネームサーバーに、ブラウザが URL を投げて、IPアドレスを返してもらうこと。
ブラウザーが DNS ルックアップをリクエストし、そのリクエストは最終的にネームサーバーによって処理され、ネームサーバーが IP アドレスを返します。この最初のリクエストの後、多くの場合その IP アドレスはしばらくの間キャッシュされ、ネームサーバーへ再接続する代わりにキャッシュから IP アドレスを取得することによって、後続するリクエストの速度を向上します。
ページの生成: ブラウザーの動作の仕組み - ウェブパフォーマンス | MDN より引用
Mac のシステム環境設定 > ネットワーク > DNS で、Google の 8.8.8.8 を指定すると早くなって良いよとか言って、指定していた IPアドレスは、ネームサーバーの IP アドレスだったのか。
でもなんで、8.8.8.8 というIP アドレスを使えるのか??
TCP ハンドシェイク
2台のコンピューター、クラインとサーバーが通信するために、接続を確認する方法。
- クライアントが、サーバーに まず 送信元ポートと宛先ポートと SYN( 同期を意味する Synchro) というフラグのデータを送って、届いてる確認する。
- サーバーはそのデータを受け取ったら、送信元ポートに SYNとACK(了承を意味する Acknowlegement)というフラグ持ったデータを送り返して、自分からもデータがちゃんと送れるか確認する。
- クライアントはデータを受け取ったら、ACK(了承)のフラグを送り返す。
このデータを送る前の、接続確認のやりとりのことを TCPハンドシェイクと呼ぶ。
【図解】TCPコネクションのシーケンスと状態確認〜3way handshake, FIN/RST, netstat〜 | SEの道標
TCPとは?ネットワーク初心者向けにわかりやすく3分で解説 | ビズドットオンライン
フェッチ
fetchStart HTTPリダイレクトが発生しない場合、リソースのダウンロードを開始する直前の時間
DNSルックアップと、TCPハンドシェイクが終わって、リクエスト送った時間?
要求開始フェーズ(requestStart)
requestStart ブラウザがURLにリクエストを送信する直前の時間
なので、フェッチと要求開始フェーズについては、ブラウザの世界のワードで、TCPコネクションなどのTCPの世界とは違う様に思う。