2017年10月28日土曜日

FireFoxが重くなる(v56でも)原因と言われるhttp/2について調べる

先日FireFoxのv56がリリースされ軽くなったと書きましたが、まだ重いと悩んでる方がいらっしゃるようです。
ポク太郎です。

FireFox v56.0で重い件が解決したと思ってたら、検索流入に「FireFox56 重い」が多数。

おかすぃ…と調べてみると、HTTP/2のバグが原因でオフにすると軽くなるという情報が多数。


“バグあり”と言われるhttp/2機能

バグあり”と言われているhttp/2機能をオフにする方法は以下。
FireFoxのURL欄に、
about:config[ENTER]

動作保証外警告→「危険を承知の上で使用する」ボタン

検索欄に以下を入力。
network.http.spdy.enabled.http2

ダブルクリックして値を以下に変更
false


通信プロトコルとは

HTTP/1.1やHTTP/2とは“通信プロトコル”の一種。

通信プロトコル”とは、機械と機械が会話をする際の決まりごと。

例えば、プロトコルHTTP/1.1は、以下の順番、コマンドで接続しなければいけないというルールがあります。
1. サーバーに接続要求→通信が確立した後、
2. GET (.htmlファイルのURL) HTTP/1.1
3. [CRLF]送信
4. 再度[CRLF]送信
[CRLF]は、キャリッジリターン+改行。ASCIIコードで言うと13と10。

機械同士の会話は、「この情報をこういう順番でなんというコマンドで伝える」と明確な取り決めで目的の仕事を果たします。

上の例では、目的のURLを伝え、“.htmlファイルをダウンロードさせろ”という内容の会話です。

プロトコルには、FTP(ファイル転送)、SMTP(メール送信)、POP3(メール受信)などたくさんの種類が存在し、それぞれ送らないといけない情報と順番が決められています。

これが“通信プロトコル”。


HTTP/2とは

ここでHTTP/1.1の問題。

ホームページの正体は.htmlファイル。FireFoxなどのブラウザは、.htmlファイルをダウンロードし、それを自然に見えるように表示するソフトウェア。.htmlファイルには文章のデータ、画像のURLなどが記載されています。

HTTPのタグを並べてページを作ったことのある方はわかるかと。ホームページのデータである.htmlファイルは以下の文言がテキストで書かれています。

<head></head>
<body>
…文章…
<a href="画像のURL">画像</a>
…文章…
<a href="広告のURL">広告など</a>
…文章…
</body>

上の.htmlファイルには“文章”と“画像”と“広告”が入っています。

FireFoxなどのブラウザは、以下の動作をすることになります。
プロトコルHTTPを使って、上記.htmlファイルをダウンロード。
中に画像のURLが書いてあるので、またHTTPプロトコルで要求。
中に広告のURLが書いてあるので、またHTTPプロトコルで要求。

つまり、“文章”“画像”“広告”を同時に要求することができません。一つ終わったら次→次→次→…とするしかないプロトコルです。
HTTPパイプラインという、要求をいくつも同時に行う方法もあるのですが、実装が困難らしく現実ほとんど使用されてないそうです。

特に“画像”の場合は大抵同じサーバ上にあるにも関わらず、無駄な情報のやり取りが必要になります→遅くなる原因。

それで考えられたのがGoogleのChromeに搭載の“SPDY”なるもの。これを正式な一般仕様にするため名称を“HTTP/2”に変更。

どういうものかというと、.htmlファイルのダウンロード後、中に書いてある複数の“画像”“広告”を同時に要求、応答できるプロトコルです。(順番も気にせずに)

これによって無駄な待ち時間が少なくなり、速い・軽いとなります。


FireFoxがまだ重い?

現在FireFoxにバグが?と疑われているのはこのHTTP/2の機能。

ですが、ウィキぺディアのHTTP/2機能の項目を見ると、
Mozilla Firefoxはv34から標準で有効
とあります。今問題になってるのはv56。まだバグを残しているんでしょうか。

うち(↓)ではv56にした段階(HTTP/2機能はオン)で劇的に軽くなりました。
OS:Win7-64bit、FireFox:64bit版
OS:Win7-64bit、FireFox:32bit版
OS:Win10、FireFox:64bit版

また、このブログのアクセス解析では、v56がリリースされた日を境にFireFoxのシェアが大幅に改善されています。
リリース前後1ヶ月間のChromeを100としたときのFireFoxシェア
リリース前 25.0% → 後 43.4%
この結果は多数の方が改善されたことを表しているのではと思っています。

あくまで予想でしかないのですが、環境に依存するようなものには思えません。が、環境に依存してしまっています。

環境による違いといえば、各人で使用している機能拡張・アドオンが異なること。

HTTP/2機能を無効で改善”という情報が多数ということは、使用している拡張機能にこの機能が関わるものが?と疑うのが普通かと思います。

もし、v56以降でも重いという方は使用している機能拡張・アドオンを一旦無効にしてみては?

または、以下の記事で紹介する設定フォルダの指定を使用し、設定のバックアップを行った上で、FireFoxのリセットを行うとか。


その他に環境依存といえば…、ルータなどのデバイス…?これだとしたら冒頭の方法でHTTP/2機能をオフにするしかないかなぁ…。


【関連記事】
[Thunderbird]設定やメールを別フォルダに保存してパソコン買い替えに備える
人気!重い重いFireFoxがやっと軽くなって登場[v56.0なら使える]
人気!【無料ツール】Firefoxが重い、読込が遅い場合の対処法
メールアドレスを自由に取得する方法






シェアされると小躍りして喜びます。

0 件のコメント:

コメントを投稿