Отменить ответ HTTP / 1.1 по фрагментам И поддержать постоянное соединение

Это в основном вопрос HTTP, я работаю над приложением для iOS, хотя этот вопрос не относится к iOS.

Я хотел бы использовать постоянные соединения, и у меня не возникнет проблем с этим, пока в ответе HTTP не будет использоваться тип передачи по частям вместо явной отправки Content-Length. Сам ответ работает нормально и работал бы, если бы мне никогда не приходилось отменять ответ. Для отправки этого ответа может потребоваться некоторое время (это может занять несколько минут и никогда не отправит последний 0-й фрагмент), и часто я хотел бы отменить этот запрос (и ответ) и отправить новый запрос по тому же соединению.

При использовании HTTP / 1.1 как я могу отменить ответ с фрагментированным ответом, не закрывая соединение?

Мой текущий обходной путь - не использовать постоянные подключения, но тогда я теряю все преимущества использования постоянных подключений, что значительно замедляет выполнение этих запросов.


person Kekoa    schedule 18.07.2012    source источник


Ответы (1)


Вы не можете его отменить. В протоколе HTTP нет ничего, что позволяло бы прервать ответ HTTP. Вам нужно либо прочитать и отказаться от всего ответа, либо закрыть соединение. Однако вы можете отправить другой HTTP-запрос в том же соединении, пока сервер все еще отправляет ответ, но вам все равно придется обрабатывать весь ответ на исходный запрос.

person Francis Upton IV    schedule 18.07.2012
comment
Это мой первоначальный вывод, но я надеялся, что есть другой выход. - person Kekoa; 23.07.2012