- Когда я загружаю файл, как браузер получает размер файла и вычисляет размер суммы (длина содержимого) и убеждается, что он точен.
Nginx может ограничивать размер файла, например 1M, и что именно включает в 1M, HTTP все байты? вся информация в одной форме? Или максимальный файл в одной форме (например, форма включает 3 типа текста и один тип файла)? и Nginx судит по длине контента или атрибуту файла?
Как я ограничиваю размер файла суффиксом, например, JPG до 5M, MP4 до 20M, ZIP до 100M
Как веб-браузер распознает длину содержимого HTTP-запроса
Ответы (1)
- Когда я загружаю файл, как браузер получает размер файла и вычисляет размер суммы (длина содержимого) и убеждается, что он точен.
Эта информация поступает из ОС, файловой системы. Браузер на самом деле не проверяет его точность, но если базовая файловая система дает сбой, то HTTP-запрос, скорее всего, также не будет выполнен.
- Nginx может ограничивать размер файла, например 1M, и что именно включает в 1M, HTTP все байты? вся информация в одной форме? Или максимальный файл в одной форме (например, форма включает 3 типа текста и один тип файла)? и Nginx судит по длине контента или атрибуту файла?
Тела запросов, состоящие из нескольких частей, имеют заголовки Content-Length
, которые объединяют весь контент. Nginx не волнует, что он состоит из нескольких частей, если вы ограничиваете на основе Content-Length
.
Как ограничить размер файла суффиксом
Навскидку, я не уверен, как это сделать, но я просто предупреждаю, что вы на самом деле не знаете, что находится в этом файле, особенно на основе его имени/суффикса. Имя файла следует рассматривать только как намек на тип. Заголовок Content-Type
должен быть более сильным намеком, но все же не гарантией.