Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
|
[Net] http: как узнать размер данных, если поле Content-Length отсутствует? 10.12.02 15:26 Число просмотров: 1248
Автор: Dude Статус: Незарегистрированный пользователь
|
http://ftp.ics.uci.edu/pub/ietf/http/rfc1945.html#BodyLength
То есть RFC 1945 (HTTP 1.0, ибо в примере ты указал именно его)
"If a Content-Length header field is present, its value in bytes represents the length of the Entity-Body. Otherwise, the body length is determined by the closing of the connection by the server. "
"...В противном случае длина определяется закрытием подключения сервером."
|
<programming>
|
[Net] http: как узнать размер данных, если поле Content-Length отсутствует? 09.12.02 14:34
Автор: vim Статус: Незарегистрированный пользователь
|
Написал небольшую прогу - хочу просмотреть http трафик между IE и proxy-сервером. Т.е. вместо IE <=> PROXY сделать IE <=> ME <=> PROXY.
Проблема в чтении данных с прокси-сервера.
Когда в заголовке есть поле Content-Length, я считываю N-е количество байт, идущих после заголовка и возвращаю их в IE. С этим проблем нет.
Когда поля Content-Length нет, то размер данных, следующих за заголовком, не известен. По идее должен быть цикл вроде
while (true)
{
nBytesRead = read_from_proxy( buf );
write_to_IE( buf, 0, nByteRead );
if (nBytesRead < buf.length) break;
}
---
Вот пример заголовка:
HTTP/1.0 200 OK
Date: Mon, 09 Dec 2002 08:33:28 GMT
Content-Type: text/html; charset=windows-1251
Server: Apache
X-Powered-By: PHP/4.1.2
Content-Language: ru
Via: 1.1 netcache1 (NetCache NetApp/5.3R2D5), 1.1 mcilproxy (NetCache NetApp/5.2.1R2)
Далее идут html-данные, которые в каком-то месте обрываются.
Обрываются они потому, что на каком-то очередном шаге я получаю количество считанных в буфер байт меньше чем размер самого буфера, и решаю, что данные закончились, отдаю этот буфер IE и жду от него очередной команды.
А IE ничего не посылает, потому что ждет окончания блока данных.
Прога написана на Jave, но думаю это не принципиально
Как узнать размер блока данных, следующих за заголовком???
|
|
[Net] http: как узнать размер данных, если поле Content-Length отсутствует? 10.12.02 15:26
Автор: Dude Статус: Незарегистрированный пользователь
|
http://ftp.ics.uci.edu/pub/ietf/http/rfc1945.html#BodyLength
То есть RFC 1945 (HTTP 1.0, ибо в примере ты указал именно его)
"If a Content-Length header field is present, its value in bytes represents the length of the Entity-Body. Otherwise, the body length is determined by the closing of the connection by the server. "
"...В противном случае длина определяется закрытием подключения сервером."
|
|
|