@toomanyairmiles jest częściowo poprawny - celem tej techniki jest umożliwienie równoległych połączeń z przeglądarki internetowej do serwera. Przeglądarki internetowe powinny zezwalać na co najmniej dwa jednoczesne połączenia z jednym hostem, ale wiele nowych przeglądarek może zarządzać maksymalnie 60. Niezależnie od tego, jednoczesne jednoczesne połączenia między przeglądarką a serwerem (serwerami) internetowymi są dużym wąskim gardłem.
Z zasobu Google :
Specyfikacja HTTP 1.1 (sekcja 8.1.4) stwierdza, że przeglądarki powinny zezwalać na maksymalnie dwa jednoczesne połączenia na nazwę hosta (chociaż nowsze przeglądarki zezwalają na więcej: patrz lista przeglądarek). Jeśli dokument HTML zawiera odniesienia do większej liczby zasobów (np. CSS, JavaScript, obrazy itp.) Niż maksymalna dozwolona na jednym hoście, przeglądarka wysyła żądania dotyczące tej liczby zasobów, a pozostałe kolejkuje. Po zakończeniu niektórych żądań przeglądarka wysyła żądania dotyczące kolejnej liczby zasobów w kolejce. Powtarza ten proces, dopóki nie pobierze wszystkich zasobów. Innymi słowy, jeśli strona odwołuje się do więcej niż X zasobów zewnętrznych z jednego hosta, gdzie X to maksymalne dozwolone połączenia na hosta, przeglądarka musi je pobierać sekwencyjnie, X na raz, ponosząc 1 RTT na każde X zasobów. Całkowity czas podróży w obie strony wynosi N / X, gdzie N jest liczbą zasobów do pobrania z hosta. Na przykład, jeśli przeglądarka zezwala na 4 jednoczesne połączenia na nazwę hosta, a strona odwołuje się do 100 zasobów w tej samej domenie, poniesie 1 RTT na każde 4 zasoby i całkowity czas pobierania 25 RTT.
Tak więc sposobem obejścia tego jest „dzielenie” żądań do różnych domen lub hostów:
Ponownie z tego samego zasobu Google:
Równoważ zasoby równoległe między nazwami hostów.
Żądania dotyczące większości zasobów statycznych, w tym obrazów, CSS i innych obiektów binarnych, mogą być równoległe. Zrównoważyć żądania do wszystkich tych obiektów w jak największym stopniu w nazwach hostów. Jeśli nie jest to możliwe, z zasady należy upewnić się, że żaden host nie obsługuje więcej niż 50% więcej niż średnia dla wszystkich hostów. Na przykład, jeśli masz 40 zasobów i 4 hosty, każdy host powinien idealnie obsłużyć 10 zasobów; w najgorszym przypadku żaden host nie powinien obsługiwać więcej niż 15. Jeśli masz 100 zasobów i 4 hosty, każdy host powinien obsługiwać 25 zasobów; nikt nie powinien obsługiwać więcej niż 38 osób.
Ale jest jeszcze jeden element układanki. Każde żądanie zwykle ma swoje własne koszty ogólne, zwykle w formie plików cookie. Elementy statyczne, takie jak obrazy, CSS i JavaScript, nie muszą przesyłać danych plików cookie, więc podawanie ich z (sub) domen bez plików cookie może spowodować szybsze przechodzenie w obie strony:
Treściom statycznym, takim jak obrazy, pliki JS i CSS, nie muszą towarzyszyć pliki cookie, ponieważ użytkownik nie wchodzi w interakcje z tymi zasobami. Możesz zmniejszyć opóźnienie żądania, udostępniając zasoby statyczne z domeny, która nie obsługuje plików cookie. Ta technika jest szczególnie przydatna na stronach odwołujących się do dużych ilości rzadko przechowywanych w pamięci podręcznej treści statycznych, takich jak często zmieniające się miniatury obrazów lub rzadko dostępne archiwa obrazów. Zalecamy tę technikę dla każdej strony, która obsługuje więcej niż 5 zasobów statycznych. (W przypadku stron, które obsługują mniej zasobów niż to, nie jest warte kosztu założenia dodatkowej domeny).
Aby zarezerwować domenę bez plików cookie do obsługi zawartości statycznej, zarejestruj nową nazwę domeny i skonfiguruj bazę danych DNS za pomocą rekordu CNAME, który wskazuje nową domenę na istniejący rekord domeny A. Skonfiguruj serwer WWW, aby obsługiwał zasoby statyczne z nowej domeny, i nie zezwalaj na ustawianie plików cookie w tej domenie. Na swoich stronach internetowych odwołaj się do nazwy domeny w adresach URL zasobów statycznych.