Кееp-alive

Какво е Keep-alive

Отива клиентът във фирма да му свършат нещо и като му го свършат, казва на служителят:
„Я стой, че Пешо и той има една работа за теб, така и така съм дошъл, след това и на Гошо да свършим една работа… че да не идвам пак сто пъти…“

Под „идване сто пъти“ в случая имаме предвид – така и така TCP връзката е отворена, защо не изпратим N на брой рекуести по нея?

Брауза казва на сърва „Connection: keep-alive“, демек, „стой там, не затваряй телефона“, демек TCP връзката.

Сърва му отговаря с: „Connection: Keep-Alive
Keep-Alive: timeout=5, max=5″

Демек, „споко, тука съм, но като станат 5 нещата, които мe караш да правя, няма да чакам повече от 5 секунди за рекуест и затварям, сори“.

timeout: indicating the minimum amount of time an idle connection has to be kept opened (in seconds). Note that timeouts longer than the TCP timeout may be ignored if no keep-alive TCP message is set at the transport level.

max: indicating the maximum number of requests that can be sent on this connection before closing it. Unless 0, this value is ignored for non-pipelined connections as another request will be send in the next response. An HTTP pipeline can use it to limit the pipelining.

Прекратяване на връзката може да се задейства или от уеб браузъра или уеб сървъра, като в заглавните части на последната заявка/отговор се подаде Connection: close

В HTTP/2 този механизъм (Кееp-alive) e безсмислен, защото там изобщо принципът е различен, демек има т.н. „Multiplexing multiple requests over a single TCP connection“.

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *