web-dev-qa-db-ja.com

HTTPヘッダーエラーで指定されていない文字セット

this Page Speedでページをテストすると、Specify a character setエラーが表示されます。

The following resources have no character set specified in their HTTP headers. Specifying a character set in HTTP headers can speed up browser rendering.

Content-Typeタグが存在し、ページもUTF-8エンコードで保存されたので、エラーはどこから来たのですか?

14
Alex

これは、ドキュメント本文(「Content-Typeタグ」)ではなく、応答ヘッダーを参照しています。

HTTPデバッガーでページの応答ヘッダーを確認した場合(たとえば、Firefoxの場合はFirebugのネットパネル、またはGoogle Chrome/Internet Explorer /の開発者ツールの同様のタブSafari/Opera)、次の行が表示されます:

Content-Type: text/html

同時に、thisページで同じことを確認すると、次のように表示されます。

Content-Type: text/html; charset=utf-8

ページ速度は、不足している部分を指します。 正しいヘッダーに文字セットがあると、実際にページのレンダリングが高速化されますa bit。応答ヘッダーに誤った文字セットが指定されている(または文字セットがまったくない)場合、ブラウザは正しい文字セット宣言(<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />行)が見つかるまでページをスキャン/解釈し、文字の場合はレンダリングプロセスを再開する必要がありますsetはブラウザのデフォルト設定とは異なります。

パフォーマンスの低下はまったく大きくありません。ユーザーにとっては、本当に古い/低速なハードウェアが使用されていない限り、気付かないでしょう(ただし、ブラウザとブラウザのバージョンごとに異なります)。これに直接関係する他の「罰則」があるかもしれませんが、私は個人的にそれらを知りません。

修正:このヘッダーを(PHPスクリプトで)自分で生成する場合は、charsetも含めるように変更する必要があります。スクリプトがこのようなヘッダー操作を行わない場合、サーバーの構成ミスの問題です。

19
LazyOne