Podczas testowania tej strony z szybkością strony pojawia się Specify a character set
błąd:
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
Tag jest obecne, a strona została zapisana z kodowania UTF-8, tak więc gdzie jest błąd bierze?
Odpowiedzi:
Odnosi się do nagłówków odpowiedzi, a nie do treści dokumentu („znacznik Content-Type”).
Jeśli zaznaczysz nagłówki odpowiedzi na stronie za pomocą dowolnego debugera HTTP (na przykład panelu Net Firebug dla Firefoksa lub podobnej karty Narzędzi programisty w Google Chrome / Internet Explorer / Safari / Opera), zobaczysz następujący wiersz:
Jednocześnie, jeśli zaznaczysz to samo dla tej strony, zobaczysz:
Szybkość strony odnosi się do brakującej części. Mając prawidłowego zestawu znaków obecnych w nagłówkach rzeczywiście przyspieszy renderowania strony trochę . W przypadku podania nieprawidłowego zestawu znaków w nagłówku odpowiedzi (lub braku zestawu znaków) przeglądarka musi zeskanować / zinterpretować stronę, aż znajdzie prawidłową deklarację zestawu znaków (
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
wiersz), a następnie ponownie uruchom proces renderowania, jeśli zestaw znaków różni się od zestawu przeglądarki ustawienia domyślne.Kara za wydajność nie jest wcale duża - dla użytkownika jest niezauważalna, chyba że używany jest naprawdę stary / wolny sprzęt (chociaż różni się w zależności od przeglądarki i wersji przeglądarki). Może istnieją inne „kary”, które są bezpośrednio z tym związane, ale ja osobiście ich nie znam.
Naprawa: Jeśli sam wygenerujesz ten nagłówek (w skrypcie PHP), musisz go zmienić, aby zawierał także zestaw znaków. Jeśli skrypt nie wykonuje takich operacji na nagłówkach, oznacza to błąd w konfiguracji serwera.
źródło
header('Content-type: text/html; charset=UTF-8');
. Wielkie dzięki!curl --head $url
. Domyślny zestaw znaków można określić w Apache, dodającAddDefaultCharset utf-8
do pliku konfiguracyjnego, takiego jak .htaccess.<meta charset="utf+8">
wystarczyć?