Есть специальный тип http запросов — CONNECT — он не разрывается после передачи данных.
Проблема в том, что не все маршрутизаторы согласятся поддерживать данный запрос вне сессии ssl (она как раз реализуется через «обертку» в данный вид запроса).
Можно еще сделать иначе — «затянуть» сессию.
Если у Вас сервер не на php (вы не получите переменные пока не придет все тело запроса), а с возможностью читать прямо поток данных от клиента, то Вы можете поступить следующим образом:
Клиент устанавливает обычное POST-соединение, но отправляет не все тело, а «порциями», большими буфера (8к — по умолчанию).
Сервер, получив заголовок запроса начинает считывать данные «по-приходу» от клиента, непрерывно опрашивая сокет, обрабатывает «порции» и выдает результат в выходной поток.
Клиент получает данные, обрабатывает и шлет следующие «порции».
В целом, все очень похоже на скачку большого файла с letitbit'a.
Этот метод хорошо работает, но выглядит для прокси, как «зависшее» соединение, и они его могут «прервать».