Cara Memparalelkan Unduhan di Seluruh Nama Host

Beberapa alat pengujian kecepatan bandwidth mungkin merekomendasikan situs memparalelkan unduhan di nama host untuk menyajikan konten web ke browser web secara efektif. Rekomendasi ini biasanya terjadi pada situs yang menggunakan protokol HTTP/1.1 dan terjadi saat browser web membatasi jumlah koneksi simultan yang dibuat ke domain.

Website yang memiliki banyak HTTP permintaan untuk konten statis (seperti gambar, CSS file, dan JavaScript) menemukan peringatan Parallelize Downloads Across Hostnames. Untuk mengatasi batasan ini, siapkan domain sharding atau gunakan jaringan pengiriman konten (CDN).

Protokol HTTP/2 telah menjadi standar utama, membuat kebutuhan akan unduhan paralel menjadi usang. Sebagian besar web host sekarang menggunakan HTTP/2 secara default dan menyediakan semacam CDN gratis. Karena HTTP/2 adalah preferensi Google sekarang, pertimbangkan untuk memperbarui situs dan hosting Anda ke HTTPS.

Mengapa Memparalelkan Unduhan di Seluruh Nama Inang?

Browser web hanya dapat membuka koneksi bersamaan dalam jumlah terbatas per nama host untuk situs web yang menggunakan protokol HTTP/1.1. Batas ini mungkin setinggi enam koneksi.

instagram viewer

Ketika lebih banyak sumber daya perlu diunduh, sumber daya tambahan harus menunggu dalam antrean simpanan sampai ada koneksi yang tersedia. Sumber daya dalam antrean diblokir, dan mengurangi waktu pemblokiran ini menghasilkan waktu pemuatan halaman yang lebih cepat.

Misalnya, jika halaman web memiliki 12 gambar dan jumlah koneksi yang diizinkan oleh browser web adalah enam, maka enam gambar harus menunggu di backlog. Gambar-gambar di backlog tetap di sana sampai enam gambar pertama selesai diunduh.

Jika gambar seperti ikon atau logo digunakan beberapa kali, gunakan Sprite CSS untuk gambar berulang ini untuk mengurangi permintaan sumber daya.

Apakah Peringatan Paralelisasi Unduhan Di Seluruh Nama Inang?

Peringatan paralelisasi unduhan di seluruh nama host adalah aturan yang digunakan di beberapa pemeriksa kinerja situs web. Peringatan tersebut menunjukkan bahwa browser web tidak dapat membuka jumlah koneksi yang diperlukan untuk mengunduh semua sumber daya situs web secara bersamaan.

Untuk situs web yang menggunakan protokol HTTP/1.1, cara untuk mengatasi kebutuhan akan koneksi yang lebih terbuka ini adalah dengan is meminimalkan permintaan HTTP, menyiapkan CDN, atau menerapkan domain sharding.

Untuk situs web yang menggunakan protokol HTTP/2, banyak sumber daya dapat dimuat secara paralel melalui satu koneksi; ini disebut multiplexing. Multiplexing membuat domain sharding tidak diperlukan dengan HTTP/2. Sekitar 77 persen browser web mendukung HTTP/2 dan seharusnya tidak mengalami masalah dengan memparalelkan unduhan.

Jika penyedia hosting web Anda mendukung HTTP/2, aman untuk mengabaikan unduhan paralel di seluruh peringatan nama host. Dengan HTTP/2, banyak sumber daya dapat diunduh secara paralel pada satu koneksi.

Apa Itu Pembagian Domain?

Pembagian domain adalah metode pengoptimalan kinerja untuk koneksi HTTP/1.1 dan digunakan di situs web dengan volume permintaan HTTP yang besar. Dalam domain sharding, aset konten web didistribusikan di antara beberapa subdomain. Ketika aset didistribusikan dengan cara ini, jumlah permintaan simultan yang dapat diproses meningkat.

Di domain sharding, konten diunggah di subdomain bebas cookie. Pengguna tidak berinteraksi dengan konten statis seperti gambar, JavaScript, dan file CSS, sehingga konten ini tidak perlu dilampirkan ke cookie.

Saat subdomain tidak menyajikan cookie, ukuran permintaan yang dibuat untuk halaman dan latensi permintaan berkurang, dan halaman web dimuat lebih cepat. Contoh konten yang mendapat manfaat dari domain sharding termasuk halaman dengan konten yang jarang di-cache, seperti halaman thumbnail atau arsip gambar.

Di Drupal, modul menambahkan file CSS dan JavaScript yang dapat memperlambat kinerja. Pergi ke Konfigurasi Situs > Kinerja dan mengoptimalkan CSS dan JavaScript.

Untuk memanfaatkan keuntungan dari domain sharding pada koneksi HTTP/1.1, ikuti tip berikut:

  • Sajikan sumber daya dari subdomain yang sama untuk menyimpan file secara efisien.
  • Distribusikan sumber daya secara merata di antara subdomain.
  • Beli sertifikat SSL untuk subdomain.

Pada koneksi HTTP/2, domain sharding mengurangi kinerja karena ada pencarian DNS tambahan. Pencarian DNS ini meningkatkan waktu resolusi dan tidak meng-cache file. Sharding domain juga menambah waktu untuk setiap koneksi baru. Ini adalah kelemahan lain dari domain sharding pada koneksi HTTP/2:

  • Mendistribusikan sumber daya yang dimuat dari CSS sulit untuk didistribusikan di antara host yang di-shard.
  • Beban yang lebih tinggi pada server dari peningkatan jumlah koneksi bersamaan.
  • Memindahkan konten statis ke subdomain dapat merusak kode.
  • Browser web mungkin tidak mengizinkan akses ke nama host yang berbeda.
  • Router mungkin tidak dapat mengklasifikasikan sejumlah besar permintaan sharded atau mungkin melihat permintaan tersebut sebagai serangan penolakan layanan.

Cara Memparalelkan Unduhan di Seluruh Nama Host

Saat Anda menerima peringatan paralelisasi unduhan di seluruh nama host, Anda harus meningkatkan paralelisasi unduhan dengan mendistribusikan permintaan di antara beberapa nama host. Untuk mendistribusikan permintaan, buat subdomain untuk berbagai jenis aset web yang digunakan di situs, lalu tentukan domain root sebagai satu-satunya domain yang menggunakan cookie. Subdomain tidak menggunakan cookie.

Subdomain ini menambahkan sumber koneksi baru yang dapat dibuat oleh browser, dan memungkinkan lebih banyak sumber daya untuk diunduh sekaligus. Ketika sumber daya dibagi antara subdomain, browser web menghabiskan lebih sedikit waktu memblokir konten web dan halaman web memuat lebih cepat.

Untuk situs web yang menggunakan HTTP/2 dan HTTP/1.1, cara termudah untuk memparalelkan unduhan di seluruh nama host adalah dengan menggunakan beberapa subdomain melalui CDN. Untuk situs web yang menggunakan HTTP/1.1 dan WordPress, siapkan subdomain dan edit file functions.php WordPress.

Siapkan Subdomain

Untuk mendistribusikan sumber daya di seluruh subdomain, buat setidaknya satu dan hingga empat subdomain; satu atau dua subdomain direkomendasikan. Cara paling umum untuk membuat subdomain adalah dengan menggunakan cPanel, yang ditawarkan oleh sebagian besar layanan hosting web.

Contoh subdomain adalah:

  • media1.domainsaya.com
  • media2.domainsaya.com
  • media3.domainsaya.com
  • media4.domainsaya.com

Selain itu, subdomain dan nama host harus memiliki struktur dan jalur yang sama. Misalnya, jika jalur gambar di host adalah www.domainsaya.com/wp-content/uploads/, jalur gambar di subdomain harus cocok, misalnya, media1.domainsaya.com/wp-content/uploads/.

Siapkan CDN untuk Memparalelkan Unduhan

Setelah CDN diatur dan subdomain dibuat, arahkan setiap subdomain ke folder yang berisi konten statis. Dengan cara ini, konten dimuat melalui subdomain, bukan domain utama.

Untuk mengarahkan subdomain, gunakan Editor Zona DNS di cPanel untuk membuat catatan CNAME baru untuk setiap subdomain. Di bidang Nama data, masukkan subdomain, misalnya, media.domainsaya.com. Pada kolom CNAME, masukkan domain utama, misalnya www.mydomain.com.

Setelah data CNAME dibuat dan disebarkan oleh host web Anda, tambahkan data CNAME ke pengaturan zona CDN.

Edit File Konfigurasi Situs Web di WordPress untuk Memparalelkan Unduhan

Setelah Anda mengatur subdomain, tambahkan kode ini ke file functions.php dari tema WordPress yang digunakan untuk situs web Anda. Ganti media1.mydomain.com dan media2.mydomain.com dengan subdomain Anda yang sebenarnya.

function parallelize_hostnames($url, $id) {
$namahost = par_get_hostname($url); //panggil fungsi tambahan
$url = str_replace (parse_url (get_bloginfo('url'), PHP_URL_HOST), $hostname, $url);
kembali $url;
}
fungsi par_get_hostname($nama) {
$subdomain = array('media1.domainsaya.com','media2.domainsaya.com'); //tambahkan subdomain Anda di sini, sebanyak yang Anda inginkan.
$host = abs (crc32(namadasar($nama)) % count($subdomain));
$hostname = $subdomain[$host];
kembali $hostname;
}
add_filter('wp_get_attachment_url', 'parallelize_hostnames', 10, 2);

Jika Anda menggunakan Jetpack dengan WordPress, aktifkan layanan Site Accelerator untuk menempatkan gambar Anda di CDN yang dikelola WordPress.