2012-11-22 35 views
12

Tôi không hoàn toàn chắc chắn liệu điều này có thuộc về SO hay không, nhưng tôi không biết phải hỏi ở đâu khác.Windows 8 dường như xóa tiêu đề mã hóa nội dung khỏi các phản hồi HTTP đã nén

Trong khi tôi đang kiểm tra tốc độ tải của ứng dụng web của tôi, tôi nhận thấy rằng dường như không có phản hồi HTTP (bất kể loại - html, css, js) là gzip/deflate được nén. Nghĩa là, không có tiêu đề phản hồi nào như "Nội dung mã hóa: gzip" có trong bất kỳ yêu cầu nào và trình duyệt báo cáo rằng tài nguyên không được nén.

  • thử nghiệm và khẳng định trong nhiều trình duyệt (IE10, FF 17, Chrome 23, Opera 12.10, Safari 5.x)
  • thử nghiệm và xác nhận trên hai máy chạy Windows 8 Pro
  • đôi kiểm tra với Fiddler - phản ứng không được nén và không chứa một tiêu đề nội dung mã hóa
  • điều này không chỉ xảy ra cho các ứng dụng web của tôi, không trang web khác tôi đã thử nghiệm xuất hiện để gửi phản nén (theo trình duyệt)
  • trên Windows 7 câu trả lời đến
  • phản ứng nén và với tất cả các tiêu đề
  • HTTPS nén

Dưới đây là một ví dụ về các tiêu đề phản ứng (lưu ý việc thiếu tiêu đề nội dung mã hóa): response headers on client machine

Tôi cũng đã kiểm tra phía máy chủ. Máy chủ đang chạy Windows Server 2008 R2/IIS 7.5. Tôi đã sử dụng Tracing Yêu cầu Không thành công để tìm hiểu những gì máy chủ đang gửi. Tài nguyên dường như được nén:

server side compression

Ngoài ra, các máy chủ dường như gửi các tiêu đề thích hợp:

compression headers

Kết luận của tôi: nó phải là Windows 8 người đang can thiệp ở đây. Rõ ràng nó sửa đổi các phản hồi HTTP. Tôi cho rằng Windows 8 đang nhận được phản hồi nén, giải nén nó, loại bỏ tiêu đề mã hóa nội dung và chuyển đáp ứng đã sửa đổi tiếp tục xuống đường ống.

Bây giờ câu hỏi của tôi:

  • Ai có thể xác nhận rằng Windows 8 sẽ thay đổi phản ứng HTTP và rằng nó hoạt động theo cách tôi đã mô tả?
  • Có cách nào để giám sát hoặc thậm chí vô hiệu hóa hành vi này không?

Cảm ơn trước vì câu trả lời của bạn.

Kính trọng, Andre


Cập nhật: tôi đã sử dụng Wireshark để xem những gì đến tại client. Như tôi mong đợi các tài nguyên được nén và tiêu đề mã hóa nội dung vẫn còn hiện diện. Hình ảnh bên dưới hiển thị giao thức wireshark và ở dưới cùng bên phải phản hồi mà Chrome nhận được.

wireshark

Điều này xác nhận giả định rằng Windows 8 đang can thiệp.

+0

Bạn đã kiểm tra ở cấp độ mạng trên máy khách với Wireshark chưa? Có thể đó là ISP của bạn. –

+0

Bạn có máy chủ proxy hoặc bộ định tuyến ưa thích trên mạng của mình không? Nó có thể giải nén dữ liệu để kiểm tra nó, và gửi phản hồi giải nén cho bạn. – CodeCaster

+1

Tôi đã thử nghiệm với các máy Windows 8 và Windows 7 trên cùng một mạng, ví dụ: cùng một nhà cung cấp internet và cùng một cơ sở hạ tầng mạng. Tôi sẽ cố gắng đào sâu vào lưu lượng mạng với wireshark và xem những gì tôi có thể tìm thấy. –

Trả lời

9

Hóa ra thủ phạm là phần mềm chống vi-rút của tôi, Avast, cụ thể hơn là lá chắn mạng tích hợp trong thời gian thực. Tắt tính năng này khiến cho các phản hồi xuất hiện được nén lại trong trình duyệt.

Điều thú vị là Avast cũng đang chạy trên các máy Windows 7, mặc dù trên các máy trả lời ở nơi được nén khi áp dụng trong các thử nghiệm của tôi.

+1

Tôi có cùng một vấn đề. Nhưng trình duyệt vẫn không xuất hiện nén sau khi tôi tắt phần mềm diệt vi-rút – Light

+0

Điều tương tự cũng xảy ra với tôi, và tôi nghi ngờ Windows Defender của Microsoft hoặc một trong những Microsofts rất nghi ngờ "cập nhật bảo mật" ** dài ** trước khi tôi nghi ngờ phần mềm AV của mình. Và có, tôi đã tắt AV và vấn đề vẫn tồn tại. – jerhewet

Các vấn đề liên quan