Я работаю над веб-приложением PHP, которое принимает большие POST-файлы для загрузки от определенных клиентов и хотело бы принять или отклонить эти загрузки (на основе различных заголовков и других факторов, а не только размера) перед загрузкой файла с использованием 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- Продолжить. Я не уверен, возможно ли это, поэтому у меня есть два вопроса:
- Можно ли заставить PHP начать обработку сразу после Expect: 100-continue?
- Если нет, то что является хорошей альтернативой?
В настоящее время я думаю продолжить эмуляцию 100, указав, что клиент сначала отправляет запрос HEAD с теми же заголовками, что и POST. Веб-приложение может затем вернуть ответ, чтобы продолжить с POST или кодом ошибки. Другие предложения приветствуются!