2010-09-29 42 views
23

Máy khách đang thực hiện yêu cầu phạm vi 0-1023 đến máy chủ http. Nó thích nén gzip với Chấp nhận mã hóa: gzip; q = 1.0, danh tính; q = 0,5, *; q = 0 trong yêu cầu.độ dài nội dung khi sử dụng nén http

Độ dài nội dung trong tiêu đề phản hồi là gì? Nó sẽ là 1024 hoặc kích thước của dữ liệu nén.

Cảm ơn,

Trả lời

20

Nhỏ hơn 1024 hoặc kích thước nén.

RFC2616 section 14 nói:

" [. Phần còn lại của câu trả lời này không có liên quan đến câu hỏi thực tế hỏi tôi rời khỏi nó trong vì một số người thấy nó hữu ích.]

RFC 2616 có này để nói (trong số những thứ khác) về Content-Length:

Applications NÊN sử dụng trường này để chỉ việc chuyển dài của thông điệp cơ thể, trừ khi điều này bị cấm bởi các quy tắc trong phần 012.351.4.4.

Vì vậy, chúng tôi phải tìm ra chiều dài truyền là gì; Section 4.4 (Message Length) cho biết hai điều này về chuyển dài:

Việc chuyển nhượng có độ dài của thông điệp là độ dài của thông điệp thân như nó xuất hiện trong thông điệp; tức là sau khi bất kỳ mã chuyển khoản nào có áp dụng .

Nếu trường tiêu đề Content-Length (phần 14.13) có mặt, giá trị thập phân trong OCTET đại diện cho cả chiều dài của thực thể và chiều dài chuyển khoản . Header field Content-Length PHẢI KHÔNG được gửi nếu hai độ dài này là khác nhau

Được rồi, vì vậy chúng tôi biết rằng trong trường hợp này chuyển dài, đơn vị độ dài, và Content-Length tất cả đều có giá trị như nhau, và tất cả tham chiếu đến "độ dài của nội dung thư như nó xuất hiện trong thông báo", và vì vậy chúng tôi phải xác định nội dung của thư. Section 4.3 nói này về thông điệp cơ thể:

Thông điệp thân (nếu có) của một thông điệp HTTP được sử dụng để thực hiện các thực thể cơ thể liên quan đến việc yêu cầu hoặc phản ứng "

Vì vậy. một thực thể thân là những gì cho rằng bạn phải tham khảo về cơ bản tất cả các Section 7 (nào cũng định nghĩa thực thể có độ dài). Quan trọng nhất, có này:?.

thực thể cơ thể: = Content-Encoding (trang nội dung Loại (dữ liệu))

Độ dài của thân thực thể (và do đó giá trị của chúng tôi cho Độ dài nội dung trên mỗi 4.4) là độ dài của dữ liệu sau khi mã hóa nội dung.

+3

Sai. Chúng tôi đang thảo luận về Mã hóa nội dung, chứ không phải Chuyển mã hóa. Nó sẽ là 1024 byte đầu tiên của nội dung * sau khi * nén gzip. –

+1

"Sai" của bạn. không đúng. Tôi sẽ chấp nhận "Không hoàn toàn." Tôi đã thêm phần còn lại của dấu vết vào Content-Encoding. – pkh

+3

Nó vẫn không chính xác. Nếu bạn yêu cầu 1024 byte của một tài nguyên có nội dung Mã hóa: gzip, thì đó là tài nguyên 1024 byte (của gzipped) mà bạn sẽ nhận được. –

0

Độ dài nội dung thực tế phụ thuộc vào mã hóa và dữ liệu chuyển: Nếu bạn sử dụng danh tính, không áp dụng nén và độ dài nội dung là 1024; nếu bạn sử dụng gzip, độ dài nội dung thực tế phụ thuộc vào dữ liệu sẽ được nén.

1

Thực tế nó sẽ là 1024 kích thước của dữ liệu được nén.

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