co się dzieje po wpisaniu adresu URL w przeglądarce [zamknięte]
293
Czy ktoś może mi powiedzieć, co się dzieje za kulisami, od momentu wpisania adresu URL w przeglądarce do momentu wyświetlenia strony w przeglądarce? Bardzo pomocna byłaby szczegółowa relacja z tego procesu.
Chociaż może to być związane z programowaniem (ostatecznie) - poziom szczegółowości, na który można by odpowiedzieć, wypełniłby (i wypełnił) woluminy. Proszę przekształcić jako zapytanie programowe.
KevinDTimm,
28
Zdobądź książkę DNS i Bind O'Reilly . To tylko 624 strony.
Uwaga: jest to bardzo szorstki i nadmiernie uproszczony szkic, zakładający najprostsze możliwe żądanie HTTP (bez HTTPS, bez HTTP2, bez dodatków), najprostszy możliwy DNS, bez serwerów proxy, pojedynczy stos IPv4, tylko jedno żądanie HTTP, prosty serwer HTTP na drugi koniec i żadnych problemów na żadnym etapie. Jest to, dla większości współczesnych zamiarów i celów, nierealny scenariusz; wszystkie z nich są znacznie bardziej złożone w rzeczywistości, a stos technologii stał się o rząd wielkości bardziej skomplikowany, odkąd zostało to napisane. Mając to na uwadze, następująca oś czasu jest nadal nieco poprawna:
przeglądarka sprawdza pamięć podręczną; jeśli żądany obiekt znajduje się w pamięci podręcznej i jest świeży, przejdź do # 9
przeglądarka pyta system operacyjny o adres IP serwera
System operacyjny wyszukuje DNS i odpowiada adresowi IP w przeglądarce
przeglądarka otwiera połączenie TCP z serwerem (ten krok jest znacznie bardziej skomplikowany przy HTTPS)
przeglądarka wysyła żądanie HTTP przez połączenie TCP
przeglądarka odbiera odpowiedź HTTP i może zamknąć połączenie TCP lub użyć go ponownie do innego żądania
przeglądarka sprawdza, czy odpowiedź jest przekierowaniem czy odpowiedzią warunkową (kody statusu wyniku 3xx), żądanie autoryzacji (401), błąd (4xx i 5xx) itp .; są obsługiwane inaczej niż normalne odpowiedzi (2xx)
jeśli buforowalne, odpowiedź jest przechowywana w pamięci podręcznej
przeglądarka dekoduje odpowiedź (np. jeśli jest spakowana gzip)
przeglądarka określa, co zrobić z odpowiedzią (np. czy jest to strona HTML, czy jest to obraz, czy to plik dźwiękowy?)
przeglądarka wyświetla odpowiedź lub oferuje okno dialogowe pobierania dla nierozpoznanych typów
Ponownie dyskusja na temat każdego z tych punktów wypełniła niezliczone strony; traktuj to jedynie jako streszczenie, skrócone dla zachowania przejrzystości. Równolegle dzieje się wiele innych rzeczy (przetwarzanie wpisanego adresu, spekulacyjne pobieranie wstępne, dodawanie strony do historii przeglądarki, wyświetlanie postępów użytkownikowi, powiadamianie o wtyczkach i rozszerzeniach, renderowanie strony podczas pobierania, potokowanie, śledzenie połączeń dla utrzymywanie przy życiu, zarządzanie plikami cookie, sprawdzanie złośliwej zawartości itp.) - a cała operacja staje się o rząd wielkości bardziej złożona dzięki HTTPS (certyfikaty, szyfry i przypinanie, o mój!).
Najpierw komputer wyszukuje hosta docelowego. Jeśli istnieje w lokalnej pamięci podręcznej DNS, wykorzystuje te informacje. W przeciwnym razie zapytania DNS są wykonywane do momentu znalezienia adresu IP.
Następnie przeglądarka otwiera połączenie TCP z hostem docelowym i wysyła żądanie zgodnie z HTTP 1.1 (lub może używać HTTP 1.0, ale normalne przeglądarki już tego nie robią).
Serwer wyszukuje wymagany zasób (jeśli istnieje) i odpowiada za pomocą protokołu HTTP, wysyła dane do klienta (= przeglądarki)
Przeglądarka używa następnie parsera HTML do odtworzenia struktury dokumentu, która jest następnie prezentowana na ekranie. Jeśli znajdzie odniesienia do zasobów zewnętrznych, takich jak obrazy, pliki css, pliki javascript, są one dostarczane w taki sam sposób, jak sam dokument HTML.
Odpowiedzi:
Uwaga: jest to bardzo szorstki i nadmiernie uproszczony szkic, zakładający najprostsze możliwe żądanie HTTP (bez HTTPS, bez HTTP2, bez dodatków), najprostszy możliwy DNS, bez serwerów proxy, pojedynczy stos IPv4, tylko jedno żądanie HTTP, prosty serwer HTTP na drugi koniec i żadnych problemów na żadnym etapie. Jest to, dla większości współczesnych zamiarów i celów, nierealny scenariusz; wszystkie z nich są znacznie bardziej złożone w rzeczywistości, a stos technologii stał się o rząd wielkości bardziej skomplikowany, odkąd zostało to napisane. Mając to na uwadze, następująca oś czasu jest nadal nieco poprawna:
Ponownie dyskusja na temat każdego z tych punktów wypełniła niezliczone strony; traktuj to jedynie jako streszczenie, skrócone dla zachowania przejrzystości. Równolegle dzieje się wiele innych rzeczy (przetwarzanie wpisanego adresu, spekulacyjne pobieranie wstępne, dodawanie strony do historii przeglądarki, wyświetlanie postępów użytkownikowi, powiadamianie o wtyczkach i rozszerzeniach, renderowanie strony podczas pobierania, potokowanie, śledzenie połączeń dla utrzymywanie przy życiu, zarządzanie plikami cookie, sprawdzanie złośliwej zawartości itp.) - a cała operacja staje się o rząd wielkości bardziej złożona dzięki HTTPS (certyfikaty, szyfry i przypinanie, o mój!).
źródło
Najpierw komputer wyszukuje hosta docelowego. Jeśli istnieje w lokalnej pamięci podręcznej DNS, wykorzystuje te informacje. W przeciwnym razie zapytania DNS są wykonywane do momentu znalezienia adresu IP.
Następnie przeglądarka otwiera połączenie TCP z hostem docelowym i wysyła żądanie zgodnie z HTTP 1.1 (lub może używać HTTP 1.0, ale normalne przeglądarki już tego nie robią).
Serwer wyszukuje wymagany zasób (jeśli istnieje) i odpowiada za pomocą protokołu HTTP, wysyła dane do klienta (= przeglądarki)
Przeglądarka używa następnie parsera HTML do odtworzenia struktury dokumentu, która jest następnie prezentowana na ekranie. Jeśli znajdzie odniesienia do zasobów zewnętrznych, takich jak obrazy, pliki css, pliki javascript, są one dostarczane w taki sam sposób, jak sam dokument HTML.
źródło
Sprawdź specyfikację HTTP. Lub, aby rozpocząć, spróbuj http://www.jmarshall.com/easy/http/
źródło