Po co wstawiać pliki statyczne (CSS, obrazy, JavaScript, ECC) do subdomeny?

29

Dlaczego tak wiele dużych i małych witryn wstawia pliki statyczne (CSS, obrazy, JavaScript, ECC) w subdomenie takiej jak media.example.comlub s2.static.example.com?

Jakie są zalety? Dlaczego nie tylko taki katalog example.com/media/?

xRobot
źródło

Odpowiedzi:

24

Widzę co najmniej trzy możliwe (dobre) powody:

  • Użyj innej maszyny, aby podać zawartość statyczną
    • W tym niektóre CDN
  • Użyj innego serwera WWW, aby podać zawartość statyczną
    • Coś lżejszego i szybszego
    • Nie potrzeba pełnego serwera PHP / .NET / JAVA do obsługi zawartości statycznej!
  • Użycie innej nazwy domeny oznacza, że ​​nie będziesz mieć plików cookie używanych w domenie głównej

Tak się dzieje w StackOverflow, jeśli dobrze pamiętam

Pascal MARTIN
źródło
15

Myślę, że głównym powodem są ciasteczka.

Pliki cookie będą wysyłane wraz z każdym żądaniem , powiedzmy, że masz 2kb danych cookie i ładujesz 20 obrazów na stronie.

To dodatkowe 40 KB danych, pomnóż to przez liczbę wyświetleń strony w ciągu miesiąca, a możesz być zaskoczony tym, ile przepustowości utraciłeś w czymś bezużytecznym, a przepustowość nie jest darmowa ...

Pliki cookie ustawione w domenie najwyższego poziomu są wysyłane we wszystkich żądaniach kierowanych do dowolnej subdomeny, w takich przypadkach zaleca się nawet zakup nowej domeny do hostowania tam składników statycznych, w domenie bez plików cookie .

Na przykład używa StackOverflow sstatic.net, Yahoo yimg.com, YouTube ytimg.com, Amazon images-amazon.comitp.

Spójrz na to:

Zistoloen
źródło
8

Aby dodać do niektórych z powyższych odpowiedzi: niektóre przeglądarki internetowe mogą pobierać tylko dwa pliki jednocześnie z dowolnej domeny.

Obsługujących zawartość statyczną z innej nazwy hosta (lub nazwy - na przykład a.domain, b.domain, c.domain) pozwala te starsze przeglądarki, aby pobrać więcej plików równolegle.

Zistoloen
źródło
2

... używaj domen wolnych od plików cookie dla komponentów.

Gdy przeglądarka wysyła żądanie statycznego obrazu i wysyła pliki cookie wraz z żądaniem, serwer nie ma żadnego zastosowania dla tych plików cookie. Tworzą ruch sieciowy tylko bez uzasadnionego powodu. Należy upewnić się, że wymagane są komponenty statyczne z żądaniami bez plików cookie. Utwórz subdomenę i umieść tam wszystkie elementy statyczne.

Ta rada pochodzi z najlepszych praktyk firmy Yahoo dotyczących przyspieszenia witryny .

M4N
źródło
0

Tylko dlatego, że twoje żądanie HTTP będzie mniejsze, a serwer będzie działał szybko, a żądany plik zostanie przekazany w bardzo krótkim czasie, co ostatecznie doprowadzi do najszybszego ładowania strony

Saurabh Sharma
źródło
Nie dodaje to niczego, czego inne odpowiedzi jeszcze nie mówią. Nawet nie mówisz, dlaczego prośba jest mniejsza (z powodu braku plików cookie), więc ta odpowiedź jest gorsza niż wiele innych.
Stephen Ostermiller