Những trình duyệt nào xử lý `Mã hóa nội dung: gzip` và trình duyệt nào có bất kỳ yêu cầu đặc biệt nào về chất lượng mã hóa?


44

Tôi đang tạo một máy chủ HTTP 1.0, 1.1 được làm bằng tay. Gần đây tôi đã tích hợp zip lib để bây giờ tôi có thể truyền dữ liệu được mã hóa vào và ra. Tôi tự hỏi những trình duyệt chính nào (những trình duyệt còn sống - IE6-IE10, Chrome, FF, v.v.) gửi Accept-Encoding: deflate, gzip, ...và vì vậy có thể xử lý Content-Encoding: gzipngay hôm nay? Mà trong số họ gửi bất kỳ kỳ vọng chất lượng? Ai trong số họ có thể gửi yêu cầu bài viết được mã hóa và dữ liệu nhiều phần / biểu mẫu đến máy chủ của tôi?


1
Bạn có nên dựa vào tiêu đề Mã hóa Chấp nhận không? Hay bạn chỉ đang hỏi vì tò mò?
Flimzy

@Flimzy Nếu bạn đang lưu trữ các tệp đã được mã hóa trước (bạn có thể làm gì để giảm tải CPU, giảm mức sử dụng dung lượng ổ đĩa, để tăng mức độ nén hoặc vì bạn đang phục vụ các tệp từ máy chủ hoàn toàn tĩnh) , sau đó bạn không thực sự có sự sang trọng để tuân thủ tiêu đề Chấp nhận mã hóa. Nếu bạn có thể tuân theo tiêu đề, tất nhiên là bạn nên, nhưng với sự hỗ trợ gần như phổ biến của gzip hiện nay, bạn có thể xây dựng trang web của mình để yêu cầu hỗ trợ gzip.
Hayden Schiff

1
@haydenschiff tất nhiên bạn vẫn có thể tôn vinh tiêu đề chấp nhận. Nếu bạn đang lưu trữ dữ liệu được nén, bạn đã sẵn sàng giải nén nó để phục vụ nó nếu tiêu đề chấp nhận ra lệnh.
Flimzy

Câu trả lời:


49

Về cơ bản mọi trình duyệt hiện nay đều hỗ trợ deflate / gzip. Trang này liệt kê nhiều trình duyệt và số phiên bản. Đây là một bản tóm tắt cộng với một số trình duyệt mới hơn:

  • Netscape 6+ (Netscape 4-5 có, nhưng có một số lỗi).
  • Internet Explorer 5.5+ (tháng 7 năm 2000) và IE 4 nếu được đặt thành HTTP / 1.1.
  • Opera 5+ (tháng 6 năm 2000)
  • Lynx 2.6+ (một thời gian trước năm 1999)
  • Firefox 0.9.5+ (tháng 10 năm 2001)
  • Chrome mãi mãi
  • Safari mãi mãi (theo như tôi có thể nói)

Như bạn có thể thấy: trong gần 15 năm, có hỗ trợ đầy đủ và không ai sử dụng trình duyệt hơn 15 năm tuổi.


1
+1 Tôi hơi bối rối, vì đây dường như là một vấn đề không tồn tại. @ user1049847 có lẽ bạn cần mở rộng câu hỏi của mình ở trên?
Su '

3
Và để thêm vào điều này, sẽ không có trình duyệt nào gửi yêu cầu nén gzip nhưng hầu như tất cả đều chấp nhận phản hồi nén gzip. Xem " Tại sao trình duyệt không thể gửi yêu cầu gzip? " Trên StackOverflow.
Marco Miltenburg

2
@Su 'là đúng - bất kỳ trình duyệt nào hỗ trợ gzip sẽ gửi tiêu đề Chấp nhận mã hóa, do đó bạn không cần quan tâm chính xác trình duyệt nào hỗ trợ điều này. Gửi gzip khi họ nói với bạn rằng họ có thể nhận được nó.
DisgruntledGoat

12
Câu hỏi có liên quan. Nếu bạn đang phục vụ các tệp tĩnh từ Amazon S3, MS Azure và những người khác (như nhiều người khác), bạn sẽ không thể tự động trả lời tiêu đề mã hóa chấp nhận. Ngoài ra, việc nén khi đang di chuyển sẽ tạo thêm tải cho CPU.
QFDev

1
@QFDev nếu bạn đang phục vụ các tệp tĩnh, bạn có thể tạo một phiên bản được nén và một phiên bản không và kiểm tra chấp nhận mã hóa / gzip và thay đổi các tệp tĩnh được cung cấp tương ứng.
JordanReiter
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.