Как я могу перенаправить запрос HTTP Post сразу после обработки заголовков?

StackOverflow https://stackoverflow.com/questions/3430087

Вопрос

На Windows CE я в настоящее время в ситуации, когда мы реализуем упрощенный веб-сервер с нуля. Преобладающее использование этого сервера будет в однозначном USB RNDIS. Сервер проводится управляемым приложением, работающим на устройстве.

Следовательно, мы жестко интегрированы пост-запрос с поставленными веб-страницами. Вместо того, чтобы обработать полный запрос и хранение данных посту, которые были бы слишком большие, текущая страница (как указана по запросу), проинформирована о каком-либо опубликованном мультипартате, получая его заголовки и поток его содержимого. Это решение работает и сияет, и все счастливы.

Теперь, вот вопрос: одна страница в веб-интерфейсе приложения позволяет загружать обновление программного обеспечения, которое может быть 11, скажем, 40 МБ по размеру. У нас есть различные шаги валидации на месте при обращении с этим потенциалом Post, как система разрешений на основе файла cookie сеанса. Мы знаем, разрешено ли клиенту загрузить обновление программного обеспечения, как только все заголовки будут обработаны, из-за упомянутого файла cookie сеанса. Есть ли способ, которым мы можем избежать необходимости читать в (и отказаться от) всех сообщений посту, так что пользователи получают немедленную обратную связь?

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

Это было полезно?

Решение

Браузер захочет, чтобы эта полная передача произойдет. Способ того, чтобы дать пользователю. Лучшая отзывчивость, вероятно, будет использовать вызов AJAX на странице - поэтому вместо страницы, получающей данные, страница должна сделать вызов ajax для публикации фактической загрузки на другую страницу асинхронно. Я, я бы сделал это с jQuery, но вы можете собрать сценарий без каких-либо структуры, чтобы сделать это довольно легко.

Другие советы

С недавнего времени я недавно дал соответствующую RFC:

HTTP 1.1 видел включение дополнительного заголовка запроса для такого сценария

Expect: 100-Continue

Это говорит серверу проверить заголовки запроса и вернуться с помощью «OK, теперь вы можете начать отправлять мне фактический контент» или «извините, что бы вы ни намерены публиковать для меня, я не смогу справиться с Это "- ответ (для более точных технических чисел, см. HTTP 1.1 RFC)

Однако это не решает мою сценарий, поскольку типичные пользовательские агенты (Firefox 3.6, то есть 8) не используют эту функцию при публикации multipart / form-data. Однако ручной помощник помощника, однако, может захотеть использовать эту функцию.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top