Я работаю над веб-приложением PHP, которое принимает большие загрузки файлов POSTed от определенных клиентов и хотел бы принять или отклонить эти загрузки (на основе различных заголовков и других факторов, а не только размера) до того, как файл будет загружен с использованием HTTP / 1.1 100 Продолжать.
Краткая справка из HTTP / 1.1 spec 8.2.3 :
Назначение статуса 100 (Продолжить) (см. Раздел 10.1.1) - позволить клиенту, который отправляет сообщение запроса с телом запроса, определить, готов ли исходный сервер принять запрос (на основе заголовков запроса) до того, как клиент отправит тело запроса. В некоторых случаях для клиента может быть неприемлемо или крайне неэффективно отправлять тело, если сервер отклонит сообщение, не глядя на тело.
Проблема в том, что Apache видит Expect: 100-continue от клиента, возвращает 100 Continue и принимает все загруженные файлы до того, как PHP начинает обработку ... Однако мне нужно, чтобы PHP начал обработку сразу после Expect: 100-continue. Я не уверен, возможно ли это, поэтому у меня два вопроса:
- Можно ли заставить PHP начинать обработку сразу после Expect: 100-continue?
- Если нет, то какая альтернатива?
В настоящее время я думаю о эмуляции 100 continue, указав, что клиент сначала отправляет запрос HEAD с теми же заголовками, что и POST. Затем веб-приложение может вернуть ответ, чтобы продолжить POST, или код ошибки. Другие предложения приветствуются!