![]() |
HTTP 1.1,вопрос
1.1 в отличии от 1.0 незакрывает сокет после ответа на запрос.Так как тогда в 1.1 отловить момент когда нужно прекращать прием данных?
|
2 _nic ну там много различий. Тут всё делов в двух вещах:
поле Connect каторое ты передаешь. Там ты можешь сказать Keep-alive или close Первое типа остаться на линии, а второе - типа чтобы сервак закрыл соединение после отправки данных. Вторая фишка - сервак отвечает и в его ответе почти всегда есть Content-Length в котором написано сколько данных он должен передать тебе. Вот и считывай это кол-во ) |
Если в отдельных случаях с блоками осиливать вручную лень - лучше юзать 1.0. В реальных условиях keep-alive редко, когда может пригодиться.
|
keep-alive юзается когда в один контекст посылаются несколько последовательных запросов. Такое любят делать с проксями браузеры типа FF.
|
slesh, что тогда означает поле Keep-Alive: 300, и почему в большинстве случаев именно 300, а не какое-нибудь другое значение?
|
Keep-Alive. Заголовок Keep-Alive содержит значение, которое означает в течение какого времени в секундах будет удерживаться соединение. Этот заголовок следует отправлять только в том случае, если заголовок Connection содержит значение keep-alive.
Поддерживается только для протокола HTTP версии 1.1. В нашем примере этот заголовок содержит значение 300, т.е. браузер сообщает серверу, что намерен удерживать постоянное соединение с сервером в течение 300 секунд. |
wildshaman, спасибо большое, теперь понятно.
|
slesh,
Броузеры - да, смысл - в редких случаях актуален. |
Слушайте, меня интересует следующие:
1) Как реализовать работу программы, если используешь Keep-Alive, но при этом сервак не передал значение Content-Length (количество отправленных байтов)? 2) Если принял все данные, как реализовать паузу (те же 300 сек.), оставаясь на линии, но при том, что бы программа не зависала от ожидания? |
1)
а) 0D 0A (в отсутствии content-length) б) читать блоки, пока блок не станет меньше его размера (в отсутствии content-length) 2) - Буфер - Три процедуры (открытие-коннект, работа с буфером, закрытие) - Thread |
| Время: 08:15 |