Mengapa memasukkan file statis (CSS, gambar, JavaScript, ECC) dalam subdomain?

29

Mengapa begitu banyak situs besar dan kecil menyisipkan file statis (CSS, gambar, JavaScript, ECC) dalam subdomain seperti media.example.comatau s2.static.example.com?

Apa kelebihannya? Kenapa tidak seperti direktori saja example.com/media/?

xRobot
sumber

Jawaban:

24

Saya melihat setidaknya tiga kemungkinan alasan (baik):

  • Gunakan mesin lain untuk menyajikan konten statis
    • Termasuk beberapa CDN
  • Gunakan server web lain untuk menyajikan konten statis
    • Sesuatu yang lebih ringan dan lebih cepat
    • Tidak perlu server PHP / .NET / JAVA lengkap untuk menyajikan konten statis!
  • Menggunakan nama domain lain berarti Anda tidak dapat memiliki cookie yang digunakan pada domain utama

Itulah yang dilakukan pada StackOverflow jika saya ingat dengan benar

Pascal MARTIN
sumber
15

Alasan utama saya pikir, adalah untuk cookie.

Cookie akan dikirimkan bersama dengan setiap permintaan , katakanlah jika Anda memiliki 2kb data cookie dan memuat 20 gambar pada satu halaman.

Itu adalah tambahan data 40kb , kalikan dengan jumlah tampilan halaman yang Anda miliki dalam sebulan, dan Anda mungkin akan terkejut tentang berapa banyak bandwidth yang Anda hilangkan dalam sesuatu yang tidak berguna, dan bandwidth tidak gratis ...

Selain itu, cookie yang ditetapkan pada domain tingkat atas, dikirim di semua permintaan yang dibuat ke subdomain apa pun, dalam kasus tersebut, bahkan disarankan untuk membeli domain baru untuk meng-host komponen statis di sana, dalam domain bebas cookie .

Misalnya, penggunaan StackOverflow, penggunaan sstatic.netYahoo yimg.com, penggunaan YouTube ytimg.com, penggunaan Amazon images-amazon.com, dll.

Coba lihat ini:

Zistoloen
sumber
8

Untuk menambahkan beberapa jawaban di atas: beberapa browser web hanya dapat mengunduh dua file secara bersamaan dari domain apa pun.

Melayani konten statis dari nama host yang berbeda (atau nama - misalnya a.domain, b.domain, c.domain) memungkinkan browser lama untuk men-download lebih banyak file secara paralel.

Zistoloen
sumber
2

... gunakan domain bebas cookie untuk komponen.

Saat browser membuat permintaan untuk gambar statis dan mengirimkan cookie bersama dengan permintaan tersebut, server tidak menggunakan cookie tersebut. Jadi mereka hanya membuat lalu lintas jaringan tanpa alasan. Anda harus memastikan komponen statis diminta dengan permintaan bebas cookie. Buat subdomain dan host semua komponen statis Anda di sana.

Saran ini diambil dari Praktik Terbaik Yahoo untuk Mempercepat Situs Web Anda .

M4N
sumber
0

Hanya karena permintaan http Anda akan lebih kecil dan server akan berjalan cepat dan file yang diminta akan diberikan dalam waktu yang sangat kecil yang pada akhirnya akan mengarah pada pemuatan halaman tercepat.

Saurabh Sharma
sumber
Ini tidak menambahkan apa pun yang jawaban lain belum katakan. Anda bahkan tidak mengatakan mengapa permintaan lebih kecil (karena tidak ada cookie), jadi jawaban ini lebih buruk daripada yang lainnya.
Stephen Ostermiller