Apa keuntungan hosting sumber daya statis di domain terpisah?


24

Saya melihat banyak situs meng-host sumber daya mereka pada domain terpisah dari situs utama, misalnya StackExchange menggunakan sstatic.net, Barnes & Noble menggunakan imagesbn.com, dll.

Saya mengerti bahwa ada manfaat untuk menempatkan sumber daya statis Anda pada host yang terpisah, mungkin dengan server web file statis yang efisien seperti nginx, membebaskan server utama untuk fokus melayani konten dinamis. Demikian pula, melakukan outsourcing ke CDN bersama seperti cloudfront Akamai adalah logis.

Namun, apa untungnya menggunakan domain terpisah? Kenapa sstatic.net bukannya static.stackexchange.com?

Pembaruan : Beberapa jawaban melewatkan pertanyaan inti. Saya mengerti bahwa ada keuntungan untuk memisahkan antara beberapa host - unduhan paralel, server web yang lebih ramping, dll. Tetapi yang lebih sulit dipahami adalah mengapa banyak domain . Mengapa sstatic.net daripada static.stackexchange.com sebagai tuan rumah untuk sumber daya bersama? Sejauh ini, hanya satu jawaban yang menjawab itu.

Jawaban:


22

Banyak situs memiliki set cookie yang cukup banyak, cookie ini memiliki tujuan mendukung semacam keadaan.

Dengan meletakkan sumber daya statis (stateless) pada domain yang sama sekali berbeda, Anda dapat mengurangi ukuran permintaan http. Dalam beberapa kasus ada begitu banyak cookie sehingga satu permintaan http membutuhkan dua paket TCP untuk dikirim. Jadi memiliki domain terpisah adalah salah satu cara untuk mengurangi jumlah paket untuk meminta berbagai bagian halaman.

Metode lain dengan tujuan yang sama adalah menggabungkan banyak gambar menjadi satu sprite dan menggabungkan semua Javascript ke dalam satu file.


23

Selain penggunaan CDN, menggunakan domain terpisah untuk data statis juga berarti:

  1. Anda dapat menggunakan server web ringan yang tidak harus memuat semua modul / ekstensi yang harus dimuat oleh server web konten dinamis Anda pada setiap permintaan tunggal. Tidak harus memindai setiap direktori di jalur URI untuk membaca file .htaccess juga meningkatkan jumlah permintaan simultan yang dapat ditangani oleh server.

  2. Menambahkan subdomain tambahan berarti Anda meningkatkan jumlah unduhan paralel yang dapat dilakukan browser.

  3. Jika disiapkan dengan benar (mis. Situs Anda dihosting www.example.comalih-alih example.com), Anda juga dapat memanfaatkan subdomain tanpa masak, mengurangi lalu lintas dan waktu bolak-balik.

Satu-satunya downside adalah, jika Anda menggunakan sesi SSL, Anda memerlukan sertifikat yang ditandatangani dan IP statis terpisah untuk domain tambahan. Tetapi manfaatnya melebihi ketidaknyamanan kecil ini dalam banyak kasus.

Edit:

Maaf, saya salah membaca pertanyaan Anda. Jika Anda bertanya mengapa beberapa orang menggunakan SLD terpisah, itu akan dijawab oleh tanda kurung di # 3. Ini juga dijelaskan di sstatic.net :

Jika domain Anda adalah www.example.org, Anda dapat meng-host komponen statis Anda di static.example.org. Namun, jika Anda telah menetapkan cookie pada domain tingkat atas example.org sebagai kebalikan dari www.example.org, maka semua permintaan ke static.example.org akan mencakup cookie tersebut. Dalam hal ini, Anda dapat membeli seluruh domain baru, meng-host komponen statis Anda di sana, dan menjaga domain ini bebas cookie. Yahoo! menggunakan yimg.com, YouTube menggunakan ytimg.com, Amazon menggunakan images-amazon.com dan sebagainya.

Tetapi menjelma juga menyebutkan poin yang baik tentang menggunakan SLD generik terpisah dan bukan subdomain dari SLD yang ada ketika Anda menjalankan jaringan besar situs yang berbagi aset tertentu.

Terakhir, seperti yang ditunjukkan Niels Basjes, bagian dari alasan untuk menghapus cookie adalah untuk meminimalkan jumlah paket yang digunakan untuk melakukan permintaan. Saya pikir pedoman YSlow menyatakan bahwa sebagian besar jaringan memiliki ukuran paket maks 1500 byte, jadi menyimpannya di bawah 1500 byte akan mengurangi overhead TCP. Ini juga menunjukkan keuntungan lain menggunakan sstatic.netbukan static.webmasters.stackexchange.com.


Mengapa Anda membutuhkan ip terpisah?
Mihalis Bagos

2
Karena enkripsi secara tradisional diterapkan sebelum nama domain dikirim. SNI , yang mengatasi hal ini, belum didukung secara universal - Anda tidak akan memasukkan IE pada XP.
phihag

@Mihalis: Hanya untuk menambah komentar phihag, Anda juga akan mengecualikan Windows Mobile 6.5 dan yang lebih lama, Android 2.x dan yang lebih tua, Browser Blackberry, Safari di XP ... Daftar lengkap perangkat lunak yang didukung / tidak didukung dapat ditemukan di sini : en.wikipedia.org/wiki/Server_Name_Indication#No_support
Lèse majesté

3
Saya tidak bertanya tentang mengapa menggunakan beberapa subdomain - itu masuk akal bagi saya. Saya bertanya tentang domain lengkap yang terpisah. Mengapa sstatic.net daripada static.stackexchange.com?
Michael Ekstrand

5

Lèse majesté membahas poin-poin utama, tetapi untuk memperluas lebih lanjut saya akan menambahkan bahwa memiliki domain tunggal untuk semua berbagai situs Stack Exchange berarti bahwa seseorang yang menjelajahinya hanya akan mengunduh konten statis seperti JavaScripts sekali. Pergi ke Superuser, misalnya, pengguna akan menggunakan konten yang di-cache karena berasal dari tempat yang sama.

Ada beberapa info lebih berguna di Yahoo dan Google tentang ini.


5

Alasan utamanya adalah cookie. Apa yang Niels sarankan dalam jawabannya hanya konsekuensi kecil, dan bukan alasan sebenarnya. Tanpa cookie, ukuran permintaan lebih kecil, sehingga menghemat beberapa bandwidth.

Namun, perbedaan sebenarnya berasal dari cache browser. Karena konten bersifat statis (tidak berubah), browser dapat menyimpannya di hard disk lokal dan menghindari pemuatan file dari Internet setiap kali. Alih-alih seluruh file, server web hanya mengirim balasan 304, yang berarti bahwa konten tidak berubah.

Ketika situs menggunakan cookie, browser menganggap bahwa konten file mungkin berbeda untuk pengguna yang berbeda, sehingga mereka tidak men-cache file-file itu. Melayani file dari domain tanpa cookie memastikan bahwa cache browser berfungsi dengan baik.

Ini adalah alasan utama karena meningkatkan waktu pemuatan dan mengurangi bandwidth secara signifikan.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.