Какой максимальный размер файла я могу передать по HTTP? А с помощью FTP? - PullRequest
19 голосов
/ 20 января 2009

Добавлено : я провожу исследование новой системы, которую мы собираемся разработать в своей работе. Он состоит в аутентификации пользователей, отображении того, какие файлы они хотят загрузить, и их загрузке. Кроме того, если файлы недоступны, пользователь не может загрузить их, но сервер получает копию запрошенного файла и уведомляет пользователя по почте, когда он может получить файл. Мы ожидаем, что размер файлов обычно составляет от 2 до 50 гигабайт.

Я просто хочу проверить, возможно ли написать веб-приложение для решения проблемы или нам нужно найти решение клиент-сервер.

Ответы [ 7 ]

23 голосов
/ 20 января 2009

Максимума нет. Любой максимум, с которым вы сталкиваетесь, зависит от приложения или сайта.

Я скачал DVD isos от Microsoft, используя HTTP и FTP без проблем (~ 4 ГБ).

Я также загрузил огромные файлы обоими способами.

Можете ли вы уточнить, что вы пытаетесь сделать?

19 голосов
/ 20 января 2009

Как уже отвечено, протокол не имеет ограничений, но большинство HTTP серверов имеют стандартные пределы загрузки по умолчанию:

IIS6 использует MaxRequestEntityAllowed (по умолчанию 4 ГБ) и AspMaxRequestEntityAllowed (по умолчанию 200000 байт) в metabase.xml .

IIS7 использует maxRequestEntityAllowed : ** appcmd set config / section: asp / maxRequestEntityAllowed: *** int * (по умолчанию 200000 байт)

Apache использует LimitRequestBody (по умолчанию 2 ГБ)

2 голосов
/ 20 января 2009

В протоколах, о которых вы говорите, таких ограничений нет. Только тайм-ауты на конкретных серверах

1 голос
/ 07 сентября 2012

Так как размер перевода, вероятно, указан в начале, я бы поспорил, что ограничение размера вашего файла такое же, как ограничение для целого числа без знака. Судя по периоду времени, когда HTTP и FTP стали популярными и полезными, я бы сказал, что это 32-разрядное целое число без знака, поэтому 2 ^ 32 байта или 4,0 ГБ .

1 голос
/ 20 января 2009

И еще один важный вопрос - вы собираетесь загружать или скачивать?

Я мог бы сказать, что загрузка имеет значительно меньше ограничений, чем загрузка. Я не знаю почему. Возможно, потому что основная цель HTTP и FTP - отправка данных, а не их получение.

Именно поэтому HTTP / FTP-серверы могут прерывать сеанс загрузки чаще, чем загрузка сеанса.

1 голос
/ 20 января 2009

Загрузка в HTTP обычно ограничена, так как сервер должен ждать, пока (в основном медленная) загрузка не будет завершена, чтобы ответить на запрос.

0 голосов
/ 09 мая 2018

Для протокола TCP у вас есть порядковый номер от 0 до 2 ^ 32-1. Предположим худший случай, когда вы увеличиваете последовательность на 1 для каждого байта. Теперь максимальный размер файла составляет 4 ГБ. И у вас есть соединение 1GBps. Вся последовательность заканчивается за 4 секунды, что оборачивается вокруг времени. Если TTL превышает время переноса, поэтому мы не можем повторно использовать последовательность, поэтому максимальный размер файла составляет 4 ГБ.

Но Magic есть в настройках TCP, в настройках мы можем добавить временную метку. Теперь проблема решена, даже если мы получим один и тот же порядковый номер источника и одного и того же получателя, но у нас будет другая метка времени для идентификации.

...