В каких условиях необходимо закрытие HTTP-соединения?
В каких условиях необходимо закрытие HTTP-соединения?
1 ответ
HTTP не тот тип протокола, который должен иметь "соединения"; это то, что они называют "без сохранения состояния", то есть каждый запрос отделен от любого другого запроса. Вот почему у нас есть такие вещи, как сеансовые куки; людям приходилось взламывать, чтобы информация передавалась между запросами.
Теперь, хотя они и разделены, HTTP 1.1 позволяет клиенту отправлять несколько запросов через одно и то же соединение TCP/IP (которое, хотя это соединение с HTTP-сервером, находится на совершенно другом уровне в стеке TCP/IP), Запросы по-прежнему будут отдельными, но вам не нужно открывать новое сетевое соединение. Это позволяет повысить эффективность, поскольку открытие сетевого подключения может быть дорогостоящим.
Если вы хотите воспользоваться этим, посмотрите заголовки в запросе и ответе. Если в запросе используется версия HTTP менее 1.1, или есть заголовок, который говорит Connection: close
, затем соединение должно прерваться после обработки текущего запроса. В противном случае, как только он будет очищен (обычно путем чтения всех данных из предыдущего запроса), его можно использовать повторно.