Поддержка HTTP 100 продолжает PHP

Я работаю над веб-приложением PHP, которое принимает большие ОТПРАВЛЕННЫЕ загрузки файла от определенных клиентов и хотело бы принять или отклонить эти загрузки (на основе различных заголовков и других факторов, не только размера), прежде чем файл будет загружен при помощи HTTP/1.1 100, Продолжаются.

Некоторый быстрый фон от спецификации 8.2.3 HTTP/1.1:

Цель 100 состояний (Continue) (см. раздел 10.1.1) состоит в том, чтобы позволить клиенту, который отправляет сообщение запроса с телом запроса, чтобы определить, готов ли сервер источника принять запрос (на основе заголовков запроса), прежде чем клиент отправит тело запроса. В некоторых случаях это могло бы или быть несоответствующим или очень неэффективным, чтобы клиент отправил тело, если сервер отклонит сообщение, не смотря на тело.

Проблема состоит в том, что Apache видит Ожидание: 100 - продолжаются от клиента, возвращается, 100 Продолжаются, и признает, что файл загружает все, прежде чем PHP начнет обрабатывать... Однако мне нужен PHP, чтобы начать обрабатывать сразу после Ожидания: 100 - продолжаются. Я не уверен, возможно ли это, таким образом, у меня есть два вопроса:

  1. Это возможный заставить PHP начать обрабатывать сразу после Ожидания: 100 - продолжаются?
  2. В противном случае, что польза альтернативна?

Я в настоящее время думаю об эмуляции 100, продолжаются путем определения, что клиент сначала отправляет ГЛАВНЫЙ запрос с теми же заголовками как POST. Веб-приложение может тогда возвратить ответ, чтобы продолжить POST или код ошибки. Другие предложения приветствуются!

14
задан Jonah Braun 12 February 2010 в 16:58
поделиться

1 ответ

Попытка сделать это на уровне HTTP кажется слишком сложной. Как разработчику важно не зацикливаться на конкретном решении. Проблема в том, что вы хотите выполнить серию проверок, прежде чем обрабатывать загрузку. Все, что вам нужно сделать, это поместить соответствующую страницу перед загрузкой. Эта квалификационная страница покажет им форму загрузки только в том случае, если они пройдут серию проверок и соответствуют требованиям. Это именно то, что вы пытаетесь сделать, только вы можете сделать это в коде PHP. Если это возможно, HTTP 100 всегда будет требовать большого количества дополнительных настроек, что создаст головную боль для поддержки в дальнейшем. Если вы сделаете это в коде, те, кто придет за вами (или вы сами через пару лет), смогут четко понять, что делает приложение.

-6
ответ дан 1 December 2019 в 17:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: