Допустим, я загружаю большой файл через HTTP-запрос POST.
Скажем также, что у меня есть другой параметр (кроме файла), который называет ресурс, который обновляет файл.
Ресурс не может быть не частью URL, как вы можете сделать это с помощью REST (например, foo.com/bar/123). Допустим, это связано с сочетанием технических и политических причин.
Сервер должен игнорировать файл, если имя ресурса неверно или, скажем, IP-адрес и / или зарегистрированный пользователь не авторизован для обновления ресурса. Это легко сделать, если параметр ресурса был первым в запросе POST.
Похоже, если этот POST пришел из HTML-формы, которая содержит имя ресурса первым и поле файла второе, для большинства (всех?) Браузеров этот порядок сохраняется в запросе POST. Но было бы наивно полностью полагаться на это, не так ли?
Другими словами, порядок параметров HTTP незначителен, и клиент может создавать POST в любом порядке. Разве это не правда?
Это означает, что, по крайней мере в теории, сервер может в конечном итоге сохранить весь большой файл, прежде чем он сможет отклонить запрос.
Мне кажется, что это явный случай, когда URL-адреса RESTful имеют преимущество, поскольку вам не нужно просматривать содержимое POST, чтобы выполнить определенную авторизацию / проверку ошибок по запросу.
Вы согласны? Каковы ваши мысли, опыт?
Больше комментариев, пожалуйста! На мой взгляд, каждый, кто делает большие загрузки файлов (или любые другие загрузки файлов по этому вопросу), должен был подумать об этом.