Co dzieje się za kulisami, gdy w przeglądarce wpisujemy www.cnn.com i jak wyświetla się informacja na ekranie?
Wyjaśnienie techniczne byłoby bardzo mile widziane.
Co dzieje się za kulisami, gdy w przeglądarce wpisujemy www.cnn.com i jak wyświetla się informacja na ekranie?
Wyjaśnienie techniczne byłoby bardzo mile widziane.
Odpowiedzi:
Przeglądarka: „Ok, więc mam użytkownika proszącego o ten adres: www.cnn.com. Sądzę, że ponieważ nie ma żadnych ukośników ani nic, jest to bezpośrednie żądanie strony głównej. Nie zdefiniowano również protokołu ani portu, więc założę, że to HTTP i przejście do portu 80 ... no cóż, pierwsze rzeczy. Hej, DNS, kolego, obudź się! Gdzie jest ta strona www.cnn.com? "
DNS: „Racja… poczekaj chwilę, zapytam serwery ISP. Ok, wygląda to na 157.166.226.25.”
Przeglądarka: „Ok. Internet Protocol Suite, twoja kolej! Zadzwoń 157.166.226.25, proszę. Wyślij im ten nagłówek HTTP. Pyta o podstawową strukturę i treść ich strony głównej, więc wiem, co jeszcze można pobrać ... no cóż, Chyba nie, że ci na tym zależy.
TCP / IP: „Co masz na myśli mówiąc o mojej kolejce ? Jakbym nie pracował po prostu w tym miejscu dla DNS? Boże, ile potrzeba, aby zyskać tu trochę uznania?”
Przeglądarka: ...
TCP / IP: „Tak, tak ... Łączę się ... Poproszę bramę o przesłanie go dalej. Wiesz, to nie jest takie proste, będę musiał podzielić twoją śliczną prośbę na wiele części więc dotrze do końca i zbierz wszystkie rzeczy, które odeślą z wszystkich tysięcy paczek, które dostaję ... och, nie obchodzi cię to. Liczby. "
Tymczasem w centrali CNN wiadomość w końcu trafia do drzwi serwera WWW.
Serwer sieci CNN: „Nzhôô! Klient! Chce wiadomości! Strona główna! A co powiesz na to?”
Mechanizm skryptów po stronie serwera CNN: „Tak, zrobię! Pierwsza strona, prawda?”
Serwer bazy danych CNN: „Tak! Pracuj dla mnie! Jakiej treści potrzebujesz?”
Silnik skryptu po stronie serwera CNN: „... um, DB, mam kopię pierwszej strony tutaj w mojej pamięci podręcznej, nie trzeba niczego kompilować. Ale hej, weź ten identyfikator użytkownika i zapisz go, wyślę go również do klienta, dzięki czemu wiemy, z kim będziemy rozmawiać później ”.
Serwer bazy danych CNN: „Yey!”
Z powrotem na komputerze użytkownika ...
TCP / IP: „Ooookay, oto odpowiedź. Och, chłopcze, dlaczego mam wrażenie, że to będzie duże ...”
Przeglądarka: „Eee, wow ... to ma wiele rodzajów kodu javascript ... kilka zdjęć, kilka formularzy ... Renderowanie zajmie trochę czasu. Lepiej się do tego dostań. Hej, system IP, jest jeszcze kilka rzeczy, które musisz zdobyć. Zobaczmy, że potrzebuję kilku arkuszy stylów z i.cdn.turner.com - przez HTTP i poproś o plik /cnn/.element/css/2.0/common.css. I następnie zdobądź niektóre z tych skryptów również na i.cdn.turner.com, do tej pory liczę sześć… ”
TCP / IP: „Dostaję obraz. Po prostu podaj mi adresy serwera i tak dalej. I zawiń te pliki w żądaniu HTTP, nie chcę sobie z tym poradzić.”
DNS: „Sprawdzanie i.cdn.turner.com ... hej, trochę ciekawostek, tak naprawdę nazywa się cdn.cnn.com.c.footprint.net. IP to 4.23.41.126”
Przeglądarka: „Jasne, jasne… poczekaj sekundę, przetworzenie zajmie kilka sekund, próbuję zrozumieć cały ten skrypt…”
TCP / IP: „Hej, oto CSS, o który prosiłeś. Och i… tak, te dodatkowe skrypty też wróciły”.
Przeglądarka: „Uff, jest więcej… coś w rodzaju reklamy wideo!”
TCP / IP: „O rany, co to za zabawa…”
Przeglądarka: „Są też wszelkiego rodzaju obrazy! I ten CSS wygląda trochę paskudnie… tak, więc jeśli ta część tam idzie i ma tę linię na górze… jak do diabła by to pasowało… nie , Muszę to trochę rozciągnąć, aby to zrobić ... Och, ale ten inny plik CSS przesłania tę zasadę ... Cóż, ten plik nie będzie łatwy do renderowania, to na pewno! "
TCP / IP: „Ok, ok, przestań mnie rozpraszać na chwilę, wciąż jest wiele do zrobienia”.
Przeglądarka: „Użytkownik, oto mały raport z postępów. Przepraszam, może to potrwać kilka sekund, do załadowania jest około 140 różnych elementów, a do tej pory było 16.”
Jedna lub dwie sekundy później ...
TCP / IP: „Ok, to powinno być wszystko. Hej, słuchaj ... przepraszam, że wcześniej cię warknąłem, radzisz sobie z tym? To z pewnością wydaje się całkiem spore dla ciebie.”
Przeglądarka: „Uff, tak, to wszystkie te strony w dzisiejszych czasach, z pewnością ci to nie ułatwi. Cóż, dam radę. Po to tu jestem.”
TCP / IP: „Wydaje mi się, że w dzisiejszych czasach jest to dla nas dość ciężkie… och, przestańcie się tak zachwycać DNS!”
Przeglądarka: „Hej, użytkownik! Witryna jest gotowa - idź po wiadomości!”
Jak działa sieć: wyjaśniono HTTP i CGI
Doskonałe wyjaśnienie CERN - alma mater of Web: Jak działa sieć
Pierwszym krokiem jest wyszukiwanie DNS (Domain Name Server). Wykorzystuje serwery DNS określone w ustawieniach sieci (lub podane przez DHCP), aby wyszukać domenę najwyższą (cnn.com), a następnie poprosić serwer nazw tej domeny o adres IP podanej domeny (www.cnn.com).
Po uzyskaniu adresu IP przeglądarka rozpoczyna komunikację z serwerem WWW. Odbywa się to przy użyciu określonego protokołu (który zwykle ma domyślną wartość HTTP 1.1). Do serwera wysyłane jest żądanie „GET” dla „/”, które odpowiada zawartością dokumentu HTML i odpowiednimi nagłówkami (które informują przeglądarkę o typie dokumentu, HTML i innych informacjach). Następnie przeglądarka analizuje dokument i znajduje adresy URL, które muszą zostać osadzone na stronie (takie jak obrazy lub połączone arkusze stylów) i wykonuje żądania GET na każdym z nich.
Przeglądarka zwykle zazwyczaj automatycznie wysyła żądanie GET do pliku „/favicon.ico” (w celu wyświetlenia małej ikony CNN obok tytułu witryny).
Twoja przeglądarka prawdopodobnie również określi w nagłówkach żądania, że chce skompresować treść odpowiedzi, używając algorytmu gzip. Dzięki temu pobieranie pliku jest znacznie mniejsze, jeśli serwer go obsługuje. Wszystko to jest dla ciebie przezroczyste, nawet jeśli jest to jak pobranie pliku ZIP i rozpakowanie go.
Po ponownym załadowaniu strony przeglądarka sprawdza, czy strona jest już buforowana w systemie, a jeśli tak, wysyła żądanie HTTP tylko do nagłówka dokumentu i sprawdza jej datę modyfikacji. Jeśli ta data jest późniejsza niż jej kopia w pamięci podręcznej, ponownie żąda pełnej zawartości dokumentu i odświeża stronę. W przeciwnym razie po prostu używa lokalnej kopii.
Do tej pory brakuje innych odpowiedzi, co dzieje się po stronie CNN:
To oczywiście nie jest techniczne wyjaśnienie, ale jest uroczą pomocą wizualną (z doskonałej strony Vladstudio.com ), która może być pomocna dla niektórych:
Informacje, o które właśnie zapytałeś, mogą wypełnić kilkadziesiąt książek. Ale oto moja próba wyjaśnienia: Twoja przeglądarka informuje Twój system operacyjny, aby znalazł adres IP cnn.com. Następnie system operacyjny prosi serwer DNS o adres IP dla cnn.com. Adres IP jest wysyłany do broswer, który kontaktuje się z adresem IP i żąda strony. Następnie cnn.com wysyła Ci stronę HTML. Przeglądarki analizują HTML i wysyłają informacje do renderera HTML. Przeglądarka następnie informuje system operacyjny, co ma wyświetlać na ekranie.
Jeff Moser miał doskonałą analizę techniczną żądania HTTPS na swoim blogu: Pierwsze kilka milisekund połączenia HTTPS .
Jest naprawdę fajny film „Sendung mit der Maus” (bardzo popularny niemiecki program telewizyjny dla dzieci, który wyjaśnia technologię dla dzieci):
Die Sendung mit der Maus - Wie funktioniert das Internet (Jak działa Internet).
Niestety tylko w języku niemieckim, ale zabawne nawet bez tekstu. Mężczyźni ze śmiesznymi hełmami grają w pakiety IP, a dane zapisywane są na kartach papierowych. Klasyczny :-).
BTW, wyjaśnienia są w rzeczywistości dość dobre.