Win32: каков статус поддержки фрагментированного кодирования в WinHttpReadData?

В документации для WinHttpReadData говорится о кодирование передачи по частям HTTP:

Начиная с Windows Vista и Windows Server 2008, WinHttp позволяет приложениям выполнять групповое кодирование передачи данных, отправляемых на сервер. Когда заголовок Transfer-Encoding присутствует в ответе WinHttp, WinHttpReadData удаляет информацию о фрагментировании перед передачей данных приложению.

Кто-нибудь может это расшифровать?


Q1 Во-первых, этот текст находится на странице WinHttpReadData, которая используется для... чтения данных в клиентском приложении HTTP, в частности, данных ответа. Итак, что это значит, когда он говорит

Начиная с Windows Vista и Windows Server 2008, WinHttp позволяет приложениям выполнять групповое кодирование передачи данных, отправляемых на сервер.

Функция WinHttpReadData не используется при отправке данных на сервер. Он используется при чтении данных с сервера.

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


Вопрос 2 Предположим, я выясню, что представляет собой новая поддержка групповой передачи, как мне получить эту поддержку? Там написано, что это новинка для Vista и WS2008. Что произойдет, если я напишу приложение, работающее на WS2003 и использующее WinHttpReadData, и оно обнаружит фрагментированный ответ или WinHttpWriteData и захочет отправить фрагментированный запрос?

Между строк, говорится ли в этой документации, что мне нужно связать WinHttp.lib в Windows SDK эпохи Vista или более поздней версии, чтобы получить возможность выполнять кодирование по частям? Или это действительно невозможно на WS2003? Другими словами, это тот случай, когда приложение, выполняющее фрагментированную передачу с использованием этой библиотеки, должно работать на указанной ОС?


Это может выглядеть как разглагольствование, но это не так. Я действительно хочу знать.


person Cheeso    schedule 24.03.2010    source источник


Ответы (1)


В моей локальной копии его нет, мне это кажется ошибкой. Chunked рассматривается в этой статье, " Передача заголовка кодирования». Он должен быть прозрачным для чтения.

person Hans Passant    schedule 25.03.2010
comment
А, так это ключевые биты информации: chunked прозрачен при чтении с обеих сторон — при чтении либо запроса, как сервера, либо ответа, как клиента. С другой стороны, отправляющая сторона должна что-то сделать, чтобы фрагментированное кодирование работало. И это что-то описано в доке для WinHttpSendRequest, которую вы цитировали. Отлично. - person Cheeso; 25.03.2010