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


15

このページを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エンコーディングで保存されたので、どこにエラーがから来ていますか?


Apacheのどこに?どのディレクトリ?

回答:


19

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

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

Content-Type: text/html

同時に、このページで同じをチェックすると、以下が表示されます。

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

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

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

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


私はちょうど追加しましたheader('Content-type: text/html; charset=UTF-8');。どうもありがとう!
アレックス

6
を使用して応答ヘッダーを表示することもできますcurl --head $url。デフォルトの文字セットはAddDefaultCharset utf-8、.htaccessなどの構成ファイルに追加することにより、Apacheで指定できます。
LRI

明確な説明のために+1、しばしばこれを疑問に思って混乱しました。htaccess AddDefaultCharsetの追加で解決
Malachi

<meta charset="utf+8">十分ではありませんか?
ダニエルスプリンガー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.