Set karakter tidak ditentukan dalam kesalahan tajuk HTTP


15

Saat menguji halaman ini dengan Kecepatan Halaman, saya mendapatkan Specify a character setkesalahan:

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

The Content-Typetag hadir dan halaman diselamatkan dengan UTF-8 encoding juga, jadi mana kesalahan itu berasal?


dimana di apache? direktori yang mana?

Jawaban:


19

Ini merujuk pada Header Respons dan bukan dokumen badan ("Tag Jenis-Konten").

Jika Anda memeriksa Header Respons halaman Anda dengan HTTP Debugger (misalnya, panel Net Firebug untuk Firefox, atau tab serupa dari Alat Pengembang di Google Chrome / Internet Explorer / Safari / Opera), Anda akan melihat baris ini:

Content-Type: text/html

Pada saat yang sama, jika Anda memeriksa hal yang sama untuk halaman ini , Anda akan melihat:

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

Kecepatan Halaman mengacu pada bagian yang hilang. Memiliki set karakter yang benar hadir di header memang akan mempercepat rendering halaman sedikit . Dengan charset yang salah ditentukan dalam tajuk respons (atau tidak ada set karakter sama sekali) browser perlu memindai / menafsirkan halaman hingga menemukan deklarasi set karakter yang benar ( <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />baris) dan kemudian memulai kembali proses rendering jika set karakter berbeda dari browser. setingan awal.

Hukuman kinerja tidak besar sama sekali - bagi pengguna itu tidak terlalu mencolok kecuali perangkat keras yang benar-benar lama / lambat digunakan (meskipun berbeda untuk setiap versi browser dan browser). Mungkin ada beberapa "hukuman" lain yang berhubungan langsung dengan ini, tetapi saya pribadi tidak menyadarinya.

Memperbaiki: Jika Anda membuat header ini sendiri (dalam skrip PHP Anda), maka Anda perlu mengubahnya untuk menyertakan charset juga. Jika skrip Anda tidak melakukan manipulasi header seperti itu, maka itu adalah masalah konfigurasi server.


Saya baru saja menambahkan header('Content-type: text/html; charset=UTF-8');. Terima kasih banyak!
Alex

6
Anda juga dapat melihat tajuk respons dengan curl --head $url. Charset default dapat ditentukan di Apache dengan menambahkan AddDefaultCharset utf-8ke file konfigurasi seperti .htaccess.
Lri

+1 untuk penjelasan yang jelas, sering bertanya-tanya dan bingung. Diselesaikan dengan penambahan AddDefaultCharset htaccess
Maleakhi

Bukankah seharusnya <meta charset="utf+8">cukup?
Daniel Springer
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.