Подтвердить что ты не робот

HTTP не имеет значения statel-less, так что это значит, что он поддерживается?

Keep-Alive: 300
Proxy-Connection: keep-alive

Как известно, HTTP-соединение закрывается, когда запрос получает ответ, так что означает keep-alive, может кто-нибудь это уточнить?

4b9b3361

Ответ 1

Это означает, что все в порядке, чтобы открыть соединение, чтобы запросить дополнительные ресурсы, например, изображения и таблицы стилей.

Ответ 2

Как известно, HTTP-соединение закрывается, когда запрос получает ответ

Что такое HTTP-соединение? На самом деле это соединение сокета, через которое выполняется HTTP. Только в HTTP1.0 соединение закрывается после каждого ответа. Чтобы сэкономить на стоимости подключения TCP/IP, HTTP1.1 указывает, что если клиент не отправляет заголовок

Connection:close

или сервер возвращается с тем же заголовком, то сокет остается открытым. Вы можете подавать столько запросов, сколько хотите, в этот сокет, и ответы возвращаются в том порядке, в котором они были запрошены. Для этого требуется, чтобы ответ был либо отправлен с помощью кодированной передачи передачи, либо содержит заголовок длины контента, чтобы можно было определить/вычислить конец каждого ответа.

Заголовок proxy-connection снова отличается и связан только с разговором между клиентом и прокси-серверами.

Я бы рекомендовал эту страницу как отличное руководство для протокола.

HTTP Made Really Easy

Ответ 3

Этот вопрос уже ответил и принят, но я хотел бы подробно объяснить:

Keep-alive не может поддерживать одно соединение навсегда; приложение работа на сервере определяет предел, с помощью которого соединение живое для, и в большинстве случаев вы можете настроить этот предел.

В HTTP/1.1 по умолчанию используется Keep-alive. Если у клиентов есть дополнительные запросы, они будут использовать для них то же самое соединение.

Термин "без гражданства" не означает, что сервер не имеет возможности поддерживать связь. Это просто означает, что сервер не распознает отношения между любыми двумя запросами.

Ответ 4

Протокол действительно не имеет состояния, но keep-alive указывает, что соединение должно оставаться открытым между клиентом и сервером.

Открытие TCP-соединения - это относительно тяжелая операция, и сохранение этого соединения позволяет избежать затрат на установку и разгон, связанных с открытием нового соединения.

Ответ 5

Keep-alive не имеет ничего общего с состоянием.

В сети одна из самых дорогостоящих операций - это многократное открытие и закрытие соединений. Однако современные HTML-страницы технически просят вас сделать именно это: во-первых, получите страницу, затем получите каждый ресурс и повторите, пока не получите все. Поскольку это было бы невероятно медленно, HTTP/1.1 позволяет агентам поддерживать связь до тех пор, пока он не получит все, что захочет, с сервера.

Keep-alive - это в основном веб-браузер, который говорит серверу еще не повесить трубку.