Как веб-браузер распознает длину содержимого HTTP-запроса

  1. Когда я загружаю файл, как браузер получает размер файла и вычисляет размер суммы (длина содержимого) и убеждается, что он точен.
  2. Nginx может ограничивать размер файла, например 1M, и что именно включает в 1M, HTTP все байты? вся информация в одной форме? Или максимальный файл в одной форме (например, форма включает 3 типа текста и один тип файла)? и Nginx судит по длине контента или атрибуту файла?

  3. Как я ограничиваю размер файла суффиксом, например, JPG до 5M, MP4 до 20M, ZIP до 100M


person Xiao Zhen    schedule 27.12.2019    source источник


Ответы (1)


  1. Когда я загружаю файл, как браузер получает размер файла и вычисляет размер суммы (длина содержимого) и убеждается, что он точен.

Эта информация поступает из ОС, файловой системы. Браузер на самом деле не проверяет его точность, но если базовая файловая система дает сбой, то HTTP-запрос, скорее всего, также не будет выполнен.

  1. Nginx может ограничивать размер файла, например 1M, и что именно включает в 1M, HTTP все байты? вся информация в одной форме? Или максимальный файл в одной форме (например, форма включает 3 типа текста и один тип файла)? и Nginx судит по длине контента или атрибуту файла?

Тела запросов, состоящие из нескольких частей, имеют заголовки Content-Length, которые объединяют весь контент. Nginx не волнует, что он состоит из нескольких частей, если вы ограничиваете на основе Content-Length.

Как ограничить размер файла суффиксом

Навскидку, я не уверен, как это сделать, но я просто предупреждаю, что вы на самом деле не знаете, что находится в этом файле, особенно на основе его имени/суффикса. Имя файла следует рассматривать только как намек на тип. Заголовок Content-Type должен быть более сильным намеком, но все же не гарантией.

person Brad    schedule 27.12.2019