Відповіді:
Поле заголовка сутності об'єкта вказує розмір органу сутності, у десятковій кількості OCTET, надісланого одержувачу, або, у випадку методу HEAD, розмір органу сутності, який був би надісланий. запит GET
Не має значення, який тип контенту.
Розширення по пошті нижче .
Це кількість байтів даних в тілі запиту чи відповіді. Тіло - це частина, що надходить після порожнього рядка під заголовками.
Content-Length
Заголовка являє собою число , що позначає точну довжину в байтах тіла HTTP. Тіло HTTP починається одразу після першого порожнього рядка, який знайдеться після початкового рядка та заголовків.
Зазвичай Content-Length
заголовок використовується для HTTP 1.1, щоб приймаюча сторона знала, коли закінчиться поточна відповідь * , тому з'єднання можна повторно використовувати для іншого запиту .
* ... або запит, у разі методів запиту, які мають тіло, наприклад POST, PUT або PATCH
Крім того, Content-Length
заголовок може бути опущений, а згорнутий Transfer-Encoding
заголовок може бути використаний.
Якщо обоє Content-Length
і Transfer-Encoding
заголовки відсутні, то наприкінці відповіді з'єднання повинно бути закритим.
Наступний ресурс - це посібник, який виявився мені дуже корисним під час вивчення HTTP:
Один октет - 8 біт. Довжина вмісту - це кількість октетів, які представляє тіло повідомлення.
OCTET
тут є дуже специфічне значення, яке означає <будь-яку 8-бітну послідовність даних>. Див. Визначення на сторінці w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.2
Звідси :
Поле заголовка сутності об'єкта вказує розмір органу сутності, у десятковій кількості OCTET, надісланого одержувачу, або, у випадку методу HEAD, розмір органу сутності, який був би надісланий. запит GET
Content-Length = "Content-Length" ":" 1*DIGIT
Прикладом є
Content-Length: 3495
Програми ВИНАГАЛИ використовувати це поле, щоб вказати довжину передачі тіла повідомлення, якщо це не заборонено правилами в розділі 4.4 .
Будь-яка довжина вмісту, більша або дорівнює нулю, є дійсним значенням. У розділі 4.4 описано, як визначити довжину тіла повідомлення, якщо довжина вмісту не задана.
Зауважте, що значення цього поля суттєво відрізняється від відповідного визначення у MIME, де це необов'язкове поле, яке використовується у змістовому типі "повідомлення / зовнішнє тіло". У HTTP воно повинно бути надіслане щоразу, коли довжина повідомлення може бути визначена перед передачею, якщо це не заборонено правилами в розділі 4.4.
Моє тлумачення полягає в тому, що це означає довжину "на дроті", тобто довжину вмісту, що "закодований"
"Content-length": "3495"
На сьогодні найпоширенішим використанням POST є подання даних HTML-форм у сценарії CGI. У цьому випадку заголовок Content-Type: зазвичай є application / x-www-form-urlencoded, а Content-Length: заголовок дає довжину даних, кодованих URL-адресами форми (ось примітка про кодування URL-адрес). Сценарій CGI приймає тіло повідомлення через STDIN і декодує його. Ось типове подання форми за допомогою 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
Відповідно до специфікації :
Поле заголовка сутності об'єкта вказує розмір органу сутності, у десятковій кількості OCTET, надісланого одержувачу, або, у випадку методу HEAD, розмір органу сутності, який був би надісланий. запит GET
Content-Length = "Content-Length" ":" 1*DIGIT
Прикладом є
Content-Length: 3495
Програми ВИНАГАЛИ використовувати це поле, щоб вказати довжину передачі тіла повідомлення, якщо це не заборонено правилами в розділі 4.4.
Будь-яка довжина вмісту, більша або дорівнює нулю, є дійсним значенням. У розділі 4.4 описано, як визначити довжину тіла повідомлення, якщо довжина вмісту не задана.
Зауважте, що значення цього поля суттєво відрізняється від відповідного визначення у MIME, де це необов'язкове поле, яке використовується у змістовому типі "повідомлення / зовнішнє тіло". У HTTP воно повинно бути надіслане щоразу, коли довжина повідомлення може бути визначена перед передачею, якщо це не заборонено правилами в розділі 4.4.
Поле заголовка сутності об'єкта вказує розмір органу сутності, у десятковій кількості OCTET, надісланого одержувачу, або, у випадку методу HEAD, розмір органу сутності, який був би надісланий. запит GET
Content-length = "Довжина вмісту" ":" 1 * DIGIT
Прикладом є
Довжина вмісту: 1024
Програми ДОЛЖНО використовувати це поле, щоб вказати довжину передачі тіла повідомлення.
У PHP ви б використовували щось подібне.
header("Content-Length: ".filesize($filename));
У випадку "Тип вмісту: application / x-www-form-urlencoded" кодовані дані надсилаються до призначеного агенту обробки, щоб ви могли встановити довжину або розмір даних, які збираєтеся розміщувати.
Подумайте, чи є у вас заголовки, такі як:
content-encoding: gzip
content-length: 52098
content-type: text/javascript; charset=UTF-8
Довжина вмісту - це розмір стисненого корпусу повідомлення в "октетах" (тобто в одиницях з 8 біт, які бувають "байтами" для всіх сучасних комп'ютерів).
Розмір фактичного тіла повідомлення може бути що - то ще, можливо , 150280 байт.
Кількість символів може знову бути різною, можливо, 150231 символом, оскільки деякі символи unicode використовують кілька байтів (примітка UTF-8 - це стандартне кодування).
Отже, різні цифри залежать від того, дбаєте ви про те, скільки даних передається, чи скільки даних зберігається, або скільки символів відображається. Звичайно, немає гарантії, що ці заголовки будуть надані ..