Bộ ký tự không được chỉ định trong lỗi tiêu đề HTTP


15

Khi thử nghiệm này trang với tốc độ trang, tôi nhận được một Specify a character setlỗi:

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

Các Content-Typethẻ hiện diện và trang được lưu với UTF-8 mã hóa là tốt, vì vậy, nơi được các lỗi đến từ đâu?


ở đâu trong apache? thư mục nào?

Câu trả lời:


19

Nó đề cập đến Tiêu đề phản hồi chứ không phải phần thân tài liệu ("Thẻ loại nội dung").

Nếu bạn kiểm tra Tiêu đề phản hồi của trang của mình bằng bất kỳ Trình gỡ lỗi HTTP nào (ví dụ: Bảng điều khiển Net của Fireorms cho Firefox hoặc tab tương tự của Công cụ dành cho nhà phát triển trong Google Chrome / Internet Explorer / Safari / Opera), bạn sẽ thấy dòng này:

Content-Type: text/html

Đồng thời, nếu bạn kiểm tra tương tự cho này trang, bạn sẽ thấy:

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

Tốc độ trang được đề cập đến phần còn thiếu. Có bộ ký tự chính xác hiện diện trong các tiêu đề thực sự sẽ tăng tốc độ hiển thị trang một chút . Với bộ ký tự không chính xác được chỉ định trong tiêu đề phản hồi (hoặc hoàn toàn không có bộ ký tự), trình duyệt cần quét / giải thích trang cho đến khi tìm thấy khai báo bộ ký tự chính xác ( <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />dòng) và sau đó bắt đầu lại quá trình kết xuất nếu bộ ký tự khác với trình duyệt Cài đặt mặc định.

Hình phạt hiệu năng hoàn toàn không lớn - đối với người dùng, nó không đáng chú ý trừ khi phần cứng thực sự cũ / chậm được sử dụng (mặc dù nó khác nhau cho mỗi phiên bản trình duyệt và trình duyệt). Có thể có một số "hình phạt" khác liên quan trực tiếp đến việc này, nhưng cá nhân tôi không biết về chúng.

Khắc phục: Nếu bạn tự tạo tiêu đề này (trong tập lệnh PHP của bạn), thì bạn cũng cần thay đổi nó để bao gồm cả bộ ký tự. Nếu tập lệnh của bạn không thực hiện các thao tác tiêu đề như vậy, thì đó là vấn đề cấu hình sai của máy chủ.


Tôi chỉ cần thêm header('Content-type: text/html; charset=UTF-8');. Cảm ơn rất nhiều!
Alex

6
Bạn cũng có thể xem các tiêu đề phản hồi với curl --head $url. Bộ ký tự mặc định có thể được chỉ định trong Apache bằng cách thêm AddDefaultCharset utf-8vào tệp cấu hình như .htaccess.
Lri

+1 để giải thích rõ ràng, thường tự hỏi điều này và bị nhầm lẫn. Được giải quyết với htaccess AddDefaultCharset bổ sung
Malachi

Không nên <meta charset="utf+8">đủ?
Daniel Springer
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.