2010-11-05 48 views
5

Chúng tôi có biểu mẫu đăng nhập HTML đơn giản trên máy chủ web của thiết bị được nhúng của chúng tôi. Máy chủ web được mã hóa tùy chỉnh do giới hạn bộ nhớ nghiêm trọng. Bất kể những hạn chế này, chúng tôi thích Chrome và muốn hỗ trợ nó.cách nhận được tiêu đề "gzip xóa mã hóa nội dung" được Chrome gửi?

Tất cả trình duyệt đều đăng Yêu cầu HTTP vào biểu mẫu đăng nhập của chúng tôi chứa chuỗi "username = myname & mật khẩu = mypass" dự kiến ​​chứ không phải Chrome. Thay vào đó, chúng tôi nhận được từ Chrome yêu cầu "giải nén gzip mã hóa nội dung". BTW, bởi "tất cả các trình duyệt", tôi có nghĩa là điều này đã được thử nghiệm để làm việc tốt trên Internet Explorer phiên bản 9 beta, 8, 7, 6; Firefox phiên bản 4 beta, 3, 2; Opera 10, 9; Safari 5, 4, 3; và SeaMonkey 2.

Tham khảo phần "14.2 Chấp nhận bộ ký tự" của w3.org http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html chúng tôi đã thử gửi lại mã HTTP 406 để cho biết máy chủ này không hỗ trợ mã hóa đó với hy vọng Chrome sẽ thử lại và đăng các chuỗi dự kiến ​​theo cách tiêu chuẩn. Mã 406 được máy chủ web trả về được hiển thị rõ ràng trong cửa sổ "Kiểm tra phần tử" của Chrome, nhưng dường như cửa hàng Chrome bị Chrome xử lý dưới dạng mã lỗi và không yêu cầu thêm nào được gửi tới máy chủ web. "Đăng nhập thất bại." Chúng tôi cũng đã thử mã trả lại HTTP 405 và 200, cùng một kết quả.

Có cách nào để giải quyết hành vi này với JavaScript phía máy khách sẽ ngăn Chrome gửi yêu cầu "giải nén gzip mã hóa nội dung" hoặc phản hồi phía máy chủ sẽ giải thích tuyệt vời cho Chrome mà chúng tôi không 't làm gzip, chỉ cần gửi cho chúng tôi theo cách thông thường?

Chúng tôi đã cố gắng đăng lên diễn đàn Khắc phục sự cố Google Chrome mà không có phản hồi.

Bất kỳ trợ giúp nào sẽ được đánh giá rất nhiều!

Trân trọng, Bert

Trả lời

0

Có vẻ như khi sử dụng chrome để làm một đường bưu điện đến một máy chủ lần đầu tiên, giá trị mặc định chrome để sử dụng một mã hóa gzip. Khá kỳ lạ.

Cách dễ dàng là chỉ cần đặt tên người dùng/lượt truy cập làm thông số GET và khi gửi phản hồi, miễn là bạn không gửi mã hóa nội dung gzip, chrome nên bắt đầu sử dụng các bài đăng không được gzipped từ thời điểm đó. Hy vọng rằng công trình?

0

Tôi đã thử nghiệm điều này một chút với một tập lệnh Python đơn giản được in thành giá trị xuất chuẩn. Tôi nghĩ rằng tôi đã nhận được cùng một vấn đề, nhưng sau đó tôi nhận ra rằng tôi đã chỉ quên để loại bỏ stdout. Có vẻ như Chrome luôn gửi yêu cầu đến cuối tiêu đề trước khi gửi nội dung yêu cầu và bạn phải sử dụng cuộc gọi recv thứ hai để nhận dữ liệu POST. Ngược lại, toàn bộ yêu cầu Firefox được trả lại trong một cuộc gọi recv duy nhất.

2

Bạn đang tìm kiếm phần sai cho mã lỗi: Mục 14.11 của RFC 2616 chỉ định rằng bạn gửi 415 (Loại phương tiện không được hỗ trợ) nếu bạn không thể xử lý Mã hóa nội dung.

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