Gdzie są przechowywane te informacje („to połączenie jest między komputerem A
a serwerem F
”)?
Połączenie TCP jest rozpoznawane na podstawie źródłowego adresu IP i portu oraz docelowego adresu IP i portu. Twój system operacyjny, wszystkie pośrednie urządzenia obsługujące sesję i system operacyjny serwera rozpoznają połączenie w ten sposób.
HTTP działa z żądaniem odpowiedzi: klient łączy się z serwerem, wykonuje żądanie i otrzymuje odpowiedź. Bez utrzymywania aktywności połączenie z serwerem HTTP jest zamykane po każdej odpowiedzi. Dzięki utrzymywaniu aktywności HTTP utrzymujesz otwarte połączenie TCP, dopóki nie zostaną spełnione określone kryteria.
Pozwala to na wiele par żądanie-odpowiedź w ramach jednego połączenia TCP, eliminując niektóre stosunkowo powolne uruchamianie połączenia TCP.
Kiedy IIS (F) wysyła nagłówek utrzymywania aktywności (lub użytkownik wysyła utrzymywanie aktywności), czy to oznacza, że (E, C, B) zapisują połączenie
Nie. Routery nie muszą pamiętać sesji. W rzeczywistości wiele pakietów TCP należących do tej samej sesji TCP nie musi przechodzić przez te same routery - to jest do zarządzania przez TCP. Routery po prostu wybierają najlepszą ścieżkę IP i przekazują pakiety. Funkcja utrzymywania aktywności jest dostępna tylko dla klienta, serwera i wszelkich innych pośrednich urządzeń obsługujących sesję.
który jest tylko na moją sesję?
Czy to oznacza, że nikt inny nie może korzystać z tego połączenia
Taka jest intencja połączeń TCP : jest to połączenie typu end-to-end przeznaczone tylko dla tych dwóch stron.
Jeśli tak - czy to oznacza, że utrzymuj aktywny nagłówek - zmniejsz liczbę nakładających się użytkowników połączenia?
Zdefiniuj „nakładające się połączenia”. Zobacz trwałe połączenie HTTP, aby poznać niektóre zalety i wady, takie jak:
- Mniejsze zużycie procesora i pamięci (ponieważ mniej połączeń jest otwartych jednocześnie).
- Włącza potokowanie HTTP żądań i odpowiedzi.
- Zmniejszone przeciążenie sieci (mniej połączeń TCP).
- Zmniejszone opóźnienie w kolejnych żądaniach (bez uzgadniania).
jeśli tak, to jak długo połączenie jest dla mnie zachowywane? (Innymi słowy, jeśli ustawię opcję „keep alive” - „trzymaj” do kiedy?)
Typowa reakcja na utrzymanie przy życiu wygląda następująco:
Keep-Alive: timeout=15, max=100
Zobacz na przykład nagłówek Keep-Alive protokołu HTTP (Hypertext Transfer Protocol) (szkic dla HTTP / 2, w którym nagłówek Keep-Alive jest wyjaśniony bardziej szczegółowo niż oba 2616 i 2086 ):
Host ustawia wartość timeout
parametru na czas, przez który host pozwoli na pozostawienie bezczynnego połączenia otwartego, zanim zostanie zamknięte. Połączenie jest bezczynne, jeśli żadne dane nie są wysyłane ani odbierane przez hosta.
max
Parametr określa maksymalną liczbę żądań, które klient będzie sprawiają, lub że serwer pozwoli być wykonane na stałe połączenie. Po wysłaniu określonej liczby żądań i odpowiedzi host zawierający parametr może zamknąć połączenie.
Jednak serwer może zamknąć połączenie po dowolnym czasie lub liczbie żądań (pod warunkiem, że zwraca odpowiedź na bieżące żądanie). Sposób implementacji zależy od serwera HTTP.