Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00619 009788 10451019 na godz. na dobę w sumie
Wydajne witryny internetowe. Przyspieszanie działania serwisów WWW - książka
Wydajne witryny internetowe. Przyspieszanie działania serwisów WWW - książka
Autor: Liczba stron: 160
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-246-1518-6 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> webmasterstwo >> funkcjonalność stron
Porównaj ceny (książka, ebook, audiobook).
Poznaj metody przyspieszania działania witryn internetowych

Tempo rozwoju internetu przerosło najśmielsze oczekiwania. Każdego dnia w sieci pojawiają się nowe witryny WWW i aplikacje internetowe, przyciągające rzesze użytkowników. Niestety, nadal największym problemem internautów jest niska przepustowość łączy, która często skutecznie zniechęca do korzystania z bardziej rozbudowanych serwisów internetowych. Przed projektantami witryn WWW oraz twórcami interfejsów użytkownika dla aplikacji sieciowych stoi poważne wyzwanie - trzeba zoptymalizować i przyspieszyć funkcjonowanie tego, co użytkownik widzi w przeglądarce. W ciągu ostatnich kilku lat pojawiło się sporo ciekawych rozwiązań, znacznie ułatwiających ten proces, lecz stworzenie naprawdę wydajnego przeglądarkowego interfejsu użytkownika wymaga opanowania wielu zagadnień.

Książka 'Wydajne witryny internetowe. Przyspieszanie działania serwisów WWW' to kompleksowy przegląd i omówienie czynników składających się na optymalny interfejs użytkownika aplikacji internetowej. Czytając ją, dowiesz się, jak przyspieszyć działanie witryn WWW poprzez ograniczanie ilości przesyłanych danych, buforowanie ich i kompresowanie, optymalne rozmieszczenie elementów graficznych i zdefiniowanie stylów CSS. Nauczysz się także ograniczać rozmiary skryptów, korzystać z technologii Ajax i przyspieszać działanie elementów utworzonych za pomocą programu Adobe Flash.

Twórz wydajne i szybko działające witryny internetowe.

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

Wydajne witryny internetowe. Przyspieszanie dzia‡ania serwis(cid:243)w WWW Autor: Steve Souders T‡umaczenie: Robert G(cid:243)rczyæski ISBN: 978-83-246-1518-6 Tytu‡ orygina‡u: High Performance Web Sites: Essential Knowledge for Front-End Engineers Format: 168x237, stron: 160 Poznaj metody przyspieszania dzia‡ania witryn internetowych (cid:149) Jak zredukowa(cid:230) ilo(cid:156)(cid:230) ¿„daæ HTTP? (cid:149) W jaki spos(cid:243)b skompresowa(cid:230) przesy‡ane dane? (cid:149) Jak zoptymalizowa(cid:230) interfejsy w technologii Ajax? Tempo rozwoju internetu przeros‡o naj(cid:156)mielsze oczekiwania. Ka¿dego dnia w sieci pojawiaj„ siŒ nowe witryny WWW i aplikacje internetowe, przyci„gaj„ce rzesze u¿ytkownik(cid:243)w. Niestety, nadal najwiŒkszym problemem internaut(cid:243)w jest niska przepustowo(cid:156)(cid:230) ‡„czy, kt(cid:243)ra czŒsto skutecznie zniechŒca do korzystania z bardziej rozbudowanych serwis(cid:243)w internetowych. Przed projektantami witryn WWW oraz tw(cid:243)rcami interfejs(cid:243)w u¿ytkownika dla aplikacji sieciowych stoi powa¿ne wyzwanie (cid:150) trzeba zoptymalizowa(cid:230) i przyspieszy(cid:230) funkcjonowanie tego, co u¿ytkownik widzi w przegl„darce. W ci„gu ostatnich kilku lat pojawi‡o siŒ sporo ciekawych rozwi„zaæ, znacznie u‡atwiaj„cych ten proces, lecz stworzenie naprawdŒ wydajnego przegl„darkowego interfejsu u¿ytkownika wymaga opanowania wielu zagadnieæ. Ksi„¿ka (cid:132)Wydajne witryny internetowe. Przyspieszanie dzia‡ania serwis(cid:243)w WWW(cid:148) to kompleksowy przegl„d i om(cid:243)wienie czynnik(cid:243)w sk‡adaj„cych siŒ na optymalny interfejs u¿ytkownika aplikacji internetowej. Czytaj„c j„, dowiesz siŒ, jak przyspieszy(cid:230) dzia‡anie witryn WWW poprzez ograniczanie ilości przesy‡anych danych, buforowanie ich i kompresowanie, optymalne rozmieszczenie element(cid:243)w graficznych i zdefiniowanie styl(cid:243)w CSS. Nauczysz siŒ tak¿e ogranicza(cid:230) rozmiary skrypt(cid:243)w, korzysta(cid:230) z technologii Ajax i przyspiesza(cid:230) dzia‡anie element(cid:243)w utworzonych za pomoc„ programu Adobe Flash. (cid:149) Ograniczanie ilo(cid:156)ci ¿„daæ HTTP (cid:149) Korzystanie z nag‡(cid:243)wka Expires (cid:149) Stosowanie kompresji GZIP (cid:149) Odpowiednie umieszczanie definicji styl(cid:243)w oraz kod(cid:243)w skrypt(cid:243)w w dokumentach HTML (cid:149) Optymalne korzystanie z CSS (cid:149) Stosowanie zewnŒtrznych plik(cid:243)w ze skryptami (cid:149) Redukcja ilo(cid:156)ci zapytaæ DNS (cid:149) Buforowanie zapytaæ Ajax Tw(cid:243)rz wydajne i szybko dzia‡aj„ce witryny internetowe Wydawnictwo Helion ul. Ko(cid:156)ciuszki 1c 44-100 Gliwice tel. 032 230 98 63 e-mail: helion@helion.pl Spis treści Przedmowa ...............................................................................................................................9 Wprowadzenie.........................................................................................................................11 A Waga wydajności interfejsu ........................................................................................17 17 19 19 Określanie wydajności strony internetowej Co dzieje się z czasem udzielania odpowiedzi? Złota reguła wydajności B Ogólny opis protokołu HTTP .......................................................................................23 24 24 25 25 26 Kompresja Warunkowe żądania GET Nagłówek Expires Funkcja Keep-Alive To tylko wprowadzenie 1. Reguła 1. Wykonywanie mniejszej liczby żądań HTTP ..............................................27 27 28 30 32 33 Mapy obrazkowe Obrazy CSS Sprite Osadzone obrazy Łączenie skryptów i arkuszy stylów Podsumowanie 2. Reguła 2. Używanie Content Delivery Network ........................................................35 36 37 Content Delivery Network Oszczędności 3. Reguła 3. Używanie nagłówka Expires ......................................................................39 39 40 41 43 44 45 Nagłówek Expires Dyrektywa max-age oraz moduł mod_expires Bufor pusty kontra zapełniony Nie tylko obrazy Zmiana nazw plików Przykłady 5 4. Reguła 4. Kompresja gzip ............................................................................................47 47 48 49 49 51 52 53 W jaki sposób działa kompresja? Jakie dane kompresować? Oszczędności Konfiguracja Buforowanie proxy Przypadki skrajne Kompresja gzip w działaniu 5. Reguła 5. Umieszczanie arkuszy stylów na początku dokumentu ...........................55 55 56 57 60 61 Progresywne generowanie Narzędzie sleep.cgi Pusty biały ekran Chwilowe wyświetlenie treści strony bez zastosowanych stylów Co może zrobić programista interfejsu? 6. Reguła 6. Umieszczanie skryptów na końcu dokumentu ..........................................63 63 64 66 67 67 68 Problemy związane ze skryptami Równoległe pobieranie elementów strony Zablokowanie przez skrypty możliwości pobierania innych elementów strony Najgorsze rozwiązanie: skrypty na początku strony Najlepsze rozwiązanie: skrypty na końcu dokumentu Spojrzenie w przyszłość 7. Reguła 7. Unikanie wyrażeń CSS ................................................................................69 69 70 71 Uaktualnianie wyrażeń Rozwiązanie problemu Podsumowanie 8. Reguła 8. Używanie zewnętrznych plików JavaScript i CSS .....................................73 73 76 76 77 Kod na stronie kontra w zewnętrznym pliku Typowe wyniki Strona główna Połączenie zalet obu rozwiązań 9. Reguła 9. Redukcja liczby zapytań DNS ..................................................................... 81 81 84 86 Buforowanie zapytań DNS oraz wartość TTL Perspektywa przeglądarki internetowej Zmniejszanie liczby zapytań DNS 10. Reguła 10. Zmniejszanie objętości kodu JavaScript ...................................................87 87 87 Zmniejszanie objętości kodu Zaciemnianie kodu 6 | Spis treści Oszczędności Przykłady Dodatkowe rozwiązania 89 90 91 11. Reguła 11. Unikanie przekierowań .............................................................................95 95 96 98 Rodzaje przekierowań W jaki sposób przekierowanie zmniejsza wydajność? Alternatywa dla przekierowania 12. Reguła 12. Usuwanie duplikujących się skryptów .................................................... 105 105 106 107 Powtarzające się skrypty — to się zdarza Duplikujące się skrypty zmniejszają wydajność Unikanie powtarzających się skryptów 13. Reguła 13. Konfiguracja nagłówka ETag .................................................................. 109 109 111 113 114 Czym jest ETag? Problem związany z nagłówkiem ETag Nagłówek ETag — używaj go lub zapomnij o nim Używanie nagłówka ETag w praktyce 14. Reguła 14. Buforowanie zapytań Ajax ......................................................................117 117 119 120 120 Web 2.0, DHTML oraz Ajax Asynchroniczny = natychmiastowy? Optymalizacja zapytań Ajax Buforowanie zapytań Ajax w rzeczywistych aplikacjach 15. Analiza dziesięciu witryn internetowych ................................................................ 125 125 127 128 130 133 135 137 141 143 146 148 150 Wielkość strony, czas udzielania odpowiedzi i ocena w skali YSlow W jaki sposób zostały przeprowadzone testy? Amazon AOL CNN eBay Google MSN MySpace Wikipedia Yahoo! YouTube Skorowidz ............................................................................................................................. 153 Spis treści | 7 ROZDZIAŁ 9. Reguła 9. Redukcja liczby zapytań DNS Internet jest siecią bazującą na znajdywaniu serwerów poprzez ich adresy IP. Adresy IP są trudne do zapamiętania; nazwę serwera zawiera zwykle adres URL. Jednak adres IP nadal pozostaje niezbędny w celu wykonania żądania przez przeglądarkę internetową. Określenie tego adresu jest zadaniem serwera DNS (Domain Name System). Wymieniony serwer DNS zmienia nazwy serwerów WWW na adresy IP, podobnie jak książka telefoniczna, w której dla danego nazwiska lub instytucji można odszukać numer telefonu. Po wpisaniu w przeglądarce internetowej adresu www.yahoo.com. serwer DNS łączy się z przeglądarką i zwraca jej adres IP wskazanego serwera WWW. Powyższe objaśnienie przedstawia dodatkową zaletę serwera DNS: stanowi on warstwę po- średnią między adresem URL i rzeczywistym serwerem WWW. Jeżeli wymieniony serwer WWW zostanie zastąpiony przez inny z odmiennym adresem IP, wówczas DNS i tak umożliwia użytkownikowi używanie tej samej nazwy w celu uzyskania dostępu do nowego serwera. Ewentualnie, podobnie jak w przypadku witryny www.yahoo.com, z nazwą może być powią- zana większa liczba adresów IP, które gwarantują większą wydajność witryny internetowej. Jednak używanie serwera DNS wiąże się z kosztami. Wyszukanie adresu IP dla podanego adresu URL zwykle zajmuje przeglądarce internetowej od 20 do 120 milisekund. Do chwili zakończenia zapytania DNS przeglądarka nie może pobierać żadnych elementów z podanego serwera WWW. Czas udzielania odpowiedzi na żądanie użytkownika zależy więc także od szybkości działania serwera DNS (zwykle zapewnianego przez dostawcę usług internetowych — ISP), obciążenia serwera, odległości od niego oraz szybkości połączenia z internetem. Po opisie działania DNS z punktu widzenia przeglądarki internetowej zostanie opisana technika zmniejszenia ilości czasu poświęcanego na wykonywanie zapytań DNS. Buforowanie zapytań DNS oraz wartość TTL Zapytania DNS są buforowane w celu zwiększenia wydajności. Proces buforowania może występować na specjalnych serwerach buforujących obsługiwanych przez ISP bądź w sieci lokalnej, choć wówczas buforowanie będzie obejmowało poszczególne komputery użytkow- ników. Jak pokazano na rysunku 9.1, po żądaniu przez użytkownika nazwy serwera WWW informacje dotyczące DNS pozostają w buforze DNS systemu operacyjnego (w systemie Micro- soft Windows jest to usługa o nazwie Klient DNS). Dalsze żądania dostępu do danego serwera nie wymagają więc wykonywania kolejnych zapytań DNS, przynajmniej przez pewien czas. 81 Rysunek 9.1. Buforowanie DNS z punktu widzenia przeglądarki internetowej Wystarczająco proste? Chwila, moment — przecież większość przeglądarek internetowych posiada własne bufory, zupełnie niezależne od bufora systemu operacyjnego. Dopóki prze- glądarka przechowuje rekord DNS we własnym buforze, nie musi angażować systemu opera- cyjnego podczas żądania dostępu do rekordu. Dopiero po usunięciu rekordu z bufora prze- glądarki następuje zapytanie kierowane do systemu operacyjnego. W takiej sytuacji system operacyjny albo będzie posiadał i dostarczy odpowiedni rekord z bufora, albo wyśle żądanie do zdalnego serwera, co spowoduje wystąpienie potencjalnego opóźnienia w czasie udzielania odpowiedzi na żądanie użytkownika. Proces staje się jeszcze bardziej skomplikowany po uwzględnieniu faktu, że programiści zdają sobie sprawę, iż adres IP ulega zmianie i zużywa pamięć bufora. Dlatego też rekordy DNS są okresowo usuwane z pamięci, a kilka różnych ustawień konfiguracyjnych określa sposób i częstotliwość ich usuwania. Czynniki wpływające na buforowanie DNS W pierwszej kolejności serwer powinien określić czas buforowania rekordów. Zwracany jako wynik zapytania rekord DNS posiada tak zwaną wartość TTL (Time-To-Live) określającą mak- symalny czas ważności pakietu w sieci. Wymieniona wartość informuje klienta o maksymalnym czasie buforowania danego rekordu. Chociaż bufor systemu operacyjnego honoruje wartość TTL, to przeglądarki internetowe ignorują ją i ustalają własne ograniczenia czasowe. Co więcej, przedstawiona w rozdziale B funkcja Ke- ep-Alive protokołu HTTP może nadpisać zarówno wartość TTL, jak i ograniczenia czasowe przeglądarki. Innymi słowy, dopóki przeglądarka internetowa i serwer WWW utrzymują komu- nikację oraz otwarte połączenie TCP, nie ma żadnego powodu wykonywania kolejnych zapy- tań DNS. Przeglądarki internetowe stosują własne ograniczenia dotyczące liczby buforowanych rekordów DNS, niezależnie od czasu, w jakim rekordy znajdują się w buforze. Jeżeli w krótkim czasie użytkownik odwiedza wiele różnych witryn posiadających odmienne nazwy domen, wówczas wcześniejsze rekordy DNS zostaną usunięte z bufora i zajdzie konieczność przeprowadzenia kolejnego zapytania DNS. 82 | Rozdział 9. Reguła 9. Redukcja liczby zapytań DNS Należy pamiętać, że po usunięciu rekordu DNS z bufora przeglądarki system operacyjny wciąż może zawierać go we własnym buforze. W takim przypadku uniknie się potrzeby wykony- wania zapytania sieciowego, które może wyraźnie wydłużyć czas udzielania odpowiedzi na żądanie użytkownika. Wartości TTL Maksymalne wartości TTL dla dziesięciu najczęściej odwiedzanych witryn w USA wahają się od minuty do jednej godziny, jak przedstawiono w tabeli 9.1. Tabela 9.1. Wartości TTL Domena http://www.amazon.com http://www.aol.com http://www.cnn.com http://www.ebay.com http://www.google.com http://www.msn.com http://www.myspace.com http://www.wikipedia.org http://www.yahoo.com http://www.youtube.com TTL 1 minuta 1 minuta 10 minut 1 godzina 5 minut 5 minut 1 godzina 1 godzina 1 minuta 5 minut Dlaczego pomiędzy wymienionymi wartościami występują tak duże różnice? Prawdopodobnie wynika to z połączenia czynników geograficznych i historycznych. Interesujący dokument RFC1 zawiera szczegółowy opis formatu rekordów DNS oraz najczęściej popełnianych podczas ich konfiguracji błędów. Pierwsza wskazówka w wymienionym dokumencie dotyczy unikania ustalania zbyt małych wartości TTL, a wartość zalecana wynosi jeden dzień! Wymienione dziesięć najczęściej odwiedzanych witryn w USA posiada ogromną liczbę użyt- kowników, a ich celem jest poprawne działanie DNS pomimo awarii serwera, wirtualnego adre- su IP (VIP) lub kolokacji serwera. Z tego powodu Yahoo! stosuje małą wartość TTL. Z drugiej strony, MySpace używa jednej kolokacji serwera. Poprawne działanie usługi pomimo awarii ma mniej krytyczne znaczenie dla bieżącej topologii sieci, stąd zastosowanie większej wartości TTL, która zmniejsza liczbę zapytań DNS, co z kolei redukuje obciążenie serwerów DNS. Zalecenia dotyczące konfiguracji DNS są poza zasięgiem tematycznym niniejszej książki. Znacz- nie istotniejszym zagadnieniem jest wpływ buforowania DNS na wydajność stron internetowych. Zapoznamy się więc z buforowaniem DNS z punktu widzenia przeglądarki internetowej w celu określenia liczby zapytań DNS wykonywanych przez strony internetowe. Przeciętna wartość TTL otrzymywana przez klienta z rekordu DNS jest połową maksymalnej wartości TTL. Wynika to z faktu, że serwer DNS sam posiada wartość TTL powiązaną z re- kordem DNS. Kiedy przeglądarka wykonuje zapytanie DNS, wtedy serwer DNS zwraca ilość czasu pozostałą w TTL dla danego rekordu. Jeżeli maksymalna wartość TTL wynosi 5 minut, 1 Common DNS Data File Configuration Errors, http://tools.ietf.org/html/rfc1537. Buforowanie zapytań DNS oraz wartość TTL | 83 wówczas wartość TTL zwracana przez serwer DNS waha się od jednej do trzystu sekund, natomiast wartość przeciętna wynosi 150 sekund. Wartość TTL dla danego serwera WWW jest inna podczas wykonywania każdego zapytania DNS. Perspektywa przeglądarki internetowej Jak wspomniano we wcześniejszym podrozdziale „Czynniki wpływające na buforowanie DNS”, duża liczba czynników ma wpływ na liczbę zdalnych zapytań DNS wykonywanych przez przeglądarkę internetową. Istniejąca specyfikacja DNS (http://tools.ietf.org/html/rfc1034) pozwala klientom na elastyczność w kwestii sposobu działania bufora DNS. W podrozdziale skoncen- trujemy się na przeglądarkach Internet Explorer oraz Firefox w systemie Microsoft Windows, gdyż są to najpopularniejsze platformy. Bufor DNS w systemie Microsoft Windows jest zarządzany przez usługę Klient DNS. Użytkow- nik może wyświetlić i usunąć zawartość wymienionej usługi za pomocą polecenia ipconfig: ipconfig /displaydns ipconfig /flushdns Ponowne uruchomienie systemu również powoduje wyczyszczenie bufora usługi Klient DNS. Oprócz wymienionej usługi przeglądarki Internet Explorer oraz Firefox posiadają własne bufory DNS. Ponowne uruchomienie przeglądarki internetowej powoduje wyczyszczenie bufora przeglądarki, ale nie bufora usługi Klient DNS. Internet Explorer Bufor DNS przeglądarki Internet Explorer jest nadzorowany przez trzy ustawienia rejestru: DnsCacheTimeout, KeepAliveTimeout oraz ServerInfoTimeOut tworzone w następującym kluczu rejestru: HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternetSettings Na witrynie Microsoftu znajdują się dwa artykuły opisujące wpływ powyższych ustawień rejestru na bufor DNS2. Te artykuły wskazują następujące wartości domyślne wymienionych powyżej ustawień rejestru: • DnsCacheTimeout: 30 minut, • KeepAliveTimeout: 1 minuta, • ServerInfoTimeOut: 2 minuty. Warto w tym miejscu wspomnieć (ponieważ nie zostało to dobrze wyjaśnione w artykułach Microsoftu), że wartości TTL serwera DNS mniejsze niż 30 minut mają mały wpływ na często- tliwość zapytań DNS wykonywanych przez przeglądarkę. Gdy przeglądarka umieści w bu- forze rekord DNS, będzie on używany przez 30 minut. Jeżeli wystąpi błąd, wtedy zapytanie DNS zostanie wykonane jeszcze przed upływem tego czasu. W normalnych warunkach mała wartość TTL (poniżej trzydziestu minut) nie spowoduje zwiększenia liczby zapytań DNS wy- konywanych przez przeglądarkę Internet Explorer. 2 How Internet Explorer uses the cache for DNS host entries, http://support.microsoft.com/default.aspx?scid=KB;en-us; (cid:180)263558. How to change the default keep-alive time-out value in Internet Explorer, http://support.microsoft.com/kb/813827. 84 | Rozdział 9. Reguła 9. Redukcja liczby zapytań DNS Rola funkcji Keep-Alive również jest ważna. Domyślnie trwałe połączenie TCP jest używane, jeśli okres bezczynności osiągnie jedną minutę. Ponieważ połączenie jest utrzymywane, wy- konanie zapytania DNS nie jest wymagane (zalety funkcji Keep-Alive zostały omówione w roz- dziale B). Istnieje jeszcze dodatkowa korzyść — funkcja Keep-Alive pozwala uniknąć powtarza- nia zapytań DNS poprzez ponowne wykorzystanie nawiązanego połączenia. Wartość dwóch minut ustawienia ServerInfoTimeOut oznacza, że jeśli nawet bez stosowania funkcji Keep-Alive nazwa serwera WWW zostanie ponownie użyta przed upływem dwóch minut, to zapytanie DNS będzie niepotrzebne. W testach z wykorzystaniem przeglądarki Internet Explorer okazało się, że jeśli nazwa serwera WWW była używana co najmniej raz na dwie minuty, wtedy przez ponad 30 minut nie były wykonywane żadne zapytania DNS (przy za- łożeniu, że nie wystąpiły problemy z dostępem do podanego adresu IP). To jest ważna informacja dla centrów operacji sieciowych próbujących rozproszyć ruch sieciowy poprzez zmiany wartości DNS. Podczas rozpraszania takiego ruchu użytkownicy przeglądarki Internet Explorer przez co najmniej 30 minut będą korzystali ze starego rekordu DNS, zanim nastąpi jego aktualizacja. Użytkownicy aktywnie korzystający z witryny (przynajmniej raz na dwie minuty) nadal będą używali poprzedniego adresu IP, a aktualizacja rekordu DNS nie będzie miała miejsca aż do chwili wystąpienia awarii. Firefox Przeglądarka internetowa Firefox jest znacznie prostsza w zakresie obsługi DNS i posiada trzy następujące ustawienia konfiguracyjne: • network.dnsCacheExpiration: 1 minuta, • network.dnsCacheEntries: 20, • network.http.keep-alive.timeout: 5 minut. Rekordy DNS są buforowane przez okres jednej minuty poza ich wartość TTL. Ponieważ jest to mała ilość czasu, to ustawienie niskiej wartości TTL (mniej niż jedna godzina) prawdopo- dobnie spowoduje zwiększenie liczby wykonywanych zapytań DNS wymaganych przez strony internetowe wyświetlane w przeglądarce Firefox. Zaskakujący jest fakt, że domyślnie tylko dwadzieścia rekordów DNS jest buforowanych przez przeglądarkę Firefox. Oznacza to, że w związku z koniecznością wykonania dodatkowych zapytań DNS użytkownicy odwiedzający dużą liczbę witryn z oddzielnymi nazwami domen doświadczą wolniejszego działania, niż gdyby korzystali z przeglądarki Internet Explorer. Wartość Keep-Alive w przypadku przeglądarki Firefox jest większa niż w przypadku Inter- net Explorera: pięć minut wobec jednej minuty. Upewnienie się przez programistę, że serwer WWW obsługuje funkcję Keep-Alive, spowoduje zmniejszenie liczby zapytań DNS wyma- ganych w trakcie odwiedzania tworzonej przez niego witryny. Fasterfox (http://fasterfox.mozdev.org) jest doskonale znanym rozszerzeniem przeglądarki Firefox i służy do pomiaru oraz usprawniania wydajności przeglądarki Firefox. W celu porównania poniżej zostały przedstawione wartości wymienionych wcześniej ustawień DNS zmodyfiko- wane przez rozszerzenie Fasterfox: Perspektywa przeglądarki internetowej | 85 • network.dnsCacheExpiration: 1 godzina, • network.dnsCacheEntries: 512, • network.http.keep-alive.timeout: 30 sekund. Zmniejszanie liczby zapytań DNS Kiedy bufor DNS klienta jest pusty (zarówno w przeglądarce internetowej, jak i w systemie operacyjnym), wówczas liczba zapytań DNS odpowiada liczbie unikatowych nazw serwerów WWW używanych przez stronę internetową. Dotyczy to serwerów WWW użytych w adresie URL strony, obrazach, plikach skryptów, arkuszach stylów, obiektach Flash itd. Zmniejszenie liczby unikatowych nazw serwerów WWW powoduje zmniejszenie liczby wykonywanych zapytań DNS. Witryna Google (http://www.google.com) jest doskonałym przykładem osiągnięcia właściwego celu — wymaga tylko jednego zapytania DNS. Zmniejszenie liczby unikatowych nazw serwerów WWW może spowodować zmniejszenie ilości równolegle pobieranych na stronie danych. Uniknięcie wykonywania zapytań DNS skraca czas udzielania odpowiedzi na żądanie użytkownika, ale redukcja ilości równocześnie pobieranych danych może ten czas wydłużyć. Jak opisano w podrozdziale „Równoległe pobieranie elemen- tów strony” znajdującym się w rozdziale 6., większa ilość równocześnie pobieranych danych jest dobrym rozwiązaniem, nawet jeśli ma prowadzić do zwiększenia liczby serwerów WWW. W przypadku witryny Google.com na stronie znajdują się tylko dwa elementy. Ponieważ z jednego serwera WWW są pobierane jednocześnie dwa elementy, to użycie jednego serwera minimalizuje liczbę wykonywanych zapytań DNS przy zachowaniu maksymalnej liczby po- bieranych jednocześnie danych. Większość istniejących obecnie stron internetowych posiada dziesięć lub więcej elementów — nie są tak ascetyczne jak Google. Autor sugeruje rozproszenie elementów między co naj- mniej dwa, ale nie więcej niż cztery serwery. Osiągnięte wyniki będą dobrym kompromisem między ograniczeniem liczby wykonywanych zapytań DNS i zachowaniem wysokiego wskaź- nika liczby pobieranych jednocześnie elementów. Zaletą używania opisanej w rozdziale B funkcji Keep-Alive jest ponowne użycie istniejącego połączenia, co powoduje skrócenie czasu udzielania odpowiedzi poprzez uniknięcie genero- wania ruchu TCP/IP. Jak przedstawiono w rozdziale, upewnienie się o obsłudze funkcji Keep-Alive przez serwer WWW także zmniejsza liczbę wykonywanych zapytań DNS, zwłasz- cza w przypadku użytkowników przeglądarki Firefox. Zredukuj liczbę zapytań DNS poprzez używanie funkcji Keep-Alive i mniejszej liczby domen. 86 | Rozdział 9. Reguła 9. Redukcja liczby zapytań DNS
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Wydajne witryny internetowe. Przyspieszanie działania serwisów WWW
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: