Câu trả lời:
Trường tiêu đề thực thể Độ dài nội dung cho biết kích thước của phần thân thực thể, theo số thập phân của OCTET, được gửi cho người nhận hoặc, trong trường hợp phương thức HEAD, kích thước của phần thân thực thể sẽ được gửi yêu cầu là NHẬN.
Nó không quan trọng kiểu nội dung là gì.
Gia hạn tại bài viết dưới đây .
Đó là số byte dữ liệu trong phần thân của yêu cầu hoặc phản hồi. Phần thân là phần xuất hiện sau dòng trống bên dưới các tiêu đề.
Các Content-Length
tiêu đề là một số biểu thị một độ dài byte chính xác của cơ thể HTTP. Phần thân HTTP bắt đầu ngay sau dòng trống đầu tiên được tìm thấy sau dòng bắt đầu và tiêu đề.
Nói chung, Content-Length
tiêu đề được sử dụng cho HTTP 1.1 để bên nhận biết khi nào phản hồi hiện tại * kết thúc, do đó kết nối có thể được sử dụng lại cho một yêu cầu khác .
* ... hoặc yêu cầu, trong trường hợp phương thức yêu cầu có phần thân, chẳng hạn như POST, PUT hoặc PATCH
Ngoài ra, Content-Length
tiêu đề có thể được bỏ qua và một Transfer-Encoding
tiêu đề chunk có thể được sử dụng.
Nếu cả hai Content-Length
và Transfer-Encoding
các tiêu đề bị thiếu, khi kết thúc phản hồi, kết nối phải được đóng lại.
Tài nguyên sau đây là một hướng dẫn mà tôi thấy rất hữu ích khi tìm hiểu về HTTP:
Một octet là 8 bit. Độ dài nội dung là số octet mà phần thân thông điệp đại diện.
OCTET
ở đây có một ý nghĩa rất cụ thể có nghĩa là <bất kỳ chuỗi dữ liệu 8 bit nào>. Xem định nghĩa tại w3.org/Prot Protocol / rfc2616 / rfc2616
Từ đây :
Trường tiêu đề thực thể Độ dài nội dung cho biết kích thước của phần thân thực thể, theo số thập phân của OCTET, được gửi cho người nhận hoặc, trong trường hợp phương thức HEAD, kích thước của phần thân thực thể sẽ được gửi yêu cầu là NHẬN.
Content-Length = "Content-Length" ":" 1*DIGIT
Một ví dụ là
Content-Length: 3495
Các ứng dụng NÊN sử dụng trường này để chỉ ra độ dài truyền của nội dung thư, trừ khi điều này bị cấm theo các quy tắc trong phần 4.4 .
Bất kỳ Độ dài nội dung nào lớn hơn hoặc bằng 0 là một giá trị hợp lệ. Mục 4.4 mô tả cách xác định độ dài của nội dung thư nếu Độ dài nội dung không được cung cấp.
Lưu ý rằng ý nghĩa của trường này khác biệt đáng kể so với định nghĩa tương ứng trong MIME, trong đó nó là trường tùy chọn được sử dụng trong loại nội dung "thông điệp / nội dung bên ngoài". Trong HTTP, nó NÊN được gửi bất cứ khi nào có thể xác định độ dài của tin nhắn trước khi được chuyển, trừ khi điều này bị cấm theo các quy tắc trong phần 4.4.
Giải thích của tôi là điều này có nghĩa là độ dài "trên dây", tức là độ dài của nội dung * được mã hóa "
"Content-length": "3495"
Từ trang này
Cho đến nay, việc sử dụng POST phổ biến nhất là gửi dữ liệu biểu mẫu HTML tới các tập lệnh CGI. Trong trường hợp này, tiêu đề Content-Type: thường là application / x-www-form-urlencoding và tiêu đề Content-length: cho độ dài của dữ liệu biểu mẫu được mã hóa URL (đây là ghi chú về mã hóa URL). Kịch bản CGI nhận nội dung thư thông qua STDIN và giải mã nó. Đây là một mẫu đệ trình điển hình, sử dụng POST:
POST /path/script.cgi HTTP/1.0 From: frog@jmarshall.com User-Agent: HTTPTool/1.0 Content-Type: application/x-www-form-urlencoded Content-Length: 32
Theo thông số kỹ thuật :
Trường tiêu đề thực thể Độ dài nội dung cho biết kích thước của phần thân thực thể, theo số thập phân của OCTET, được gửi cho người nhận hoặc, trong trường hợp phương thức HEAD, kích thước của phần thân thực thể sẽ được gửi yêu cầu là NHẬN.
Content-Length = "Content-Length" ":" 1*DIGIT
Một ví dụ là
Content-Length: 3495
Các ứng dụng NÊN sử dụng trường này để chỉ ra độ dài truyền của nội dung thư, trừ khi điều này bị cấm theo các quy tắc trong phần 4.4.
Bất kỳ Độ dài nội dung nào lớn hơn hoặc bằng 0 là một giá trị hợp lệ. Mục 4.4 mô tả cách xác định độ dài của nội dung thư nếu Độ dài nội dung không được cung cấp.
Lưu ý rằng ý nghĩa của trường này khác biệt đáng kể so với định nghĩa tương ứng trong MIME, trong đó nó là trường tùy chọn được sử dụng trong loại nội dung "thông điệp / nội dung bên ngoài". Trong HTTP, nó NÊN được gửi bất cứ khi nào có thể xác định độ dài của tin nhắn trước khi được chuyển, trừ khi điều này bị cấm theo các quy tắc trong phần 4.4.
Trường tiêu đề thực thể Độ dài nội dung cho biết kích thước của phần thân thực thể, theo số thập phân của OCTET, được gửi cho người nhận hoặc, trong trường hợp phương thức HEAD, kích thước của phần thân thực thể sẽ được gửi yêu cầu là NHẬN.
Độ dài nội dung = "Độ dài nội dung" ":" 1 * DIGIT
Một ví dụ là
Độ dài nội dung: 1024
Các ứng dụng NÊN sử dụng trường này để chỉ ra độ dài truyền của nội dung thư.
Trong PHP bạn sẽ sử dụng một cái gì đó như thế này.
header("Content-Length: ".filesize($filename));
Trong trường hợp "Loại nội dung: ứng dụng / x-www-form-urlencoding", dữ liệu được mã hóa được gửi đến tác nhân xử lý được chỉ định để bạn có thể đặt độ dài hoặc kích thước của dữ liệu bạn sẽ đăng.
Xem xét nếu bạn có các tiêu đề như:
content-encoding: gzip
content-length: 52098
content-type: text/javascript; charset=UTF-8
Độ dài nội dung là kích thước của nội dung thư được nén , tính bằng "octet" (nghĩa là theo đơn vị 8 bit, là "byte" cho tất cả các máy tính hiện đại).
Các kích thước của nội dung thư thực tế có thể là cái gì khác, có lẽ 150.280 byte.
Số lượng ký tự có thể khác nhau một lần nữa, có thể là 150231 ký tự, vì một số ký tự unicode sử dụng nhiều byte (lưu ý UTF-8 là mã hóa tiêu chuẩn).
Vì vậy, các số khác nhau tùy thuộc vào việc bạn quan tâm đến việc truyền bao nhiêu dữ liệu hay bao nhiêu dữ liệu được lưu giữ hoặc bao nhiêu biểu tượng được nhìn thấy. Tất nhiên, không có gì đảm bảo rằng những tiêu đề này sẽ được cung cấp ..