Istilah alternatif untuk alamat web adalah URL. Misalnya, tutorialpoint. com adalah URL berbasis kata. Alamat IP juga dapat digunakan sebagai URL (mis. 192. 168. 2. 24). Karena nama lebih mudah diingat daripada angka, sebagian besar pengguna mengirimkan alamat nama saat mencari di internet
URL adalah metode di mana browser web meminta server web untuk halaman tertentu. Sintaks/format URL diberikan di bawah ini
Sintaksis
scheme://prefix.domain:port/path/filenameParameter
skema − menentukan jenis layanan Internet (http atau https digunakan secara umum)
awalan − menentukan awalan domain (www adalah default untuk http)
domain − mendeskripsikan nama domain internet (mis. tutorialspoint. com)
port − menentukan nomor port host (80 adalah default untuk http)
path − menetapkan jalur sisi server
filename − menentukan nama sumber daya atau dokumen
Skema URL Khas
HTTP - protokol transfer hypertext
HTTP digunakan di halaman web umum. Ini bukan protokol terenkripsi
HTTPS - protokol transfer hypertext yang aman
HTTPS digunakan di halaman web yang aman. Ini adalah protokol terenkripsi
FTP - Protokol transfer file
FTP digunakan untuk mengunduh atau mengunggah file
Sekarang mari kita lihat cara mendapatkan nama host di URL
Menggunakan properti hostname dari lokasi jendela saat ini
Di bagian ini, kita akan melihat cara mendapatkan nama host di url menggunakan properti nama host dari lokasi jendela saat ini
Sintaksis
Ikuti sintaks di bawah ini untuk mendapatkan nama host
First window.location.hostname; _Di sini kita mengakses properti hostname dari lokasi jendela saat ini
Algoritma
LANGKAH 1 - Dapatkan URL saat ini
LANGKAH 2 - Menampilkan nama host dari URL saat ini menggunakan sintaks nama host lokasi jendela saat ini
Contoh
Dalam contoh ini, kami telah menetapkan Dom kosong untuk menampilkan output. Kami telah menulis kode untuk mendapatkan nama host dari lokasi situs web saat ini
Using the current window location's hostname property
Menggunakan Properti hostname dari URL
Di bagian ini, kita akan melihat cara mendapatkan nama host di URL menggunakan properti hostname dari URL apa pun. Di sini, kami telah membuat objek URL khusus menggunakan konstruktor URL() baru
Sintaksis
Ikuti sintaks di bawah ini untuk mendapatkan nama host
var url = new URL("www.sample.com"); var hostname = url.hostname;Di sini kita mengakses properti hostname dari URL secara langsung. Kami menggunakan metode URL baru untuk membuat URL baru dan kemudian properti hostname dari url ini diambil
Contoh
Dalam contoh ini, kode membuat url sampel menggunakan metode new URL(). Nama host ditampilkan dengan mengakses properti hostname dari URL itu sendiri
Using the any url's hostname property
_Dalam tutorial ini, kita telah belajar untuk mendapatkan hostname di URL menggunakan properti hostname di JavaScript
Properti hostname adalah properti JavaScript bawaan dan mudah untuk mengakses nama host dari URL saat ini serta dari URL apa pun yang dibuat menggunakan metode URL() baru
Tidak digunakan lagi. Fitur ini tidak lagi direkomendasikan. Meskipun beberapa browser mungkin masih mendukungnya, itu mungkin telah dihapus dari standar web yang relevan, mungkin sedang dalam proses dihapus, atau mungkin hanya disimpan untuk tujuan kompatibilitas. Hindari menggunakannya, dan perbarui kode yang ada jika memungkinkan; . Ketahuilah bahwa fitur ini dapat berhenti bekerja kapan saja
Properti domain_ dari antarmuka Document mendapatkan/mengatur bagian domain dari asal dokumen saat ini, seperti yang digunakan oleh kebijakan asal yang sama
Sebuah benang
SecurityError DOMException
Penggunaan fitur ini diblokir oleh Kebijakan Izin
Untuk kode yang berjalan di URL //developer.mozilla.org/en-US/docs/Web, contoh ini akan menetapkan const currentHostname = location.hostname; 0 ke string "const currentHostname = location.hostname; 1"
const currentDomain = document.domain;
Pengambil untuk properti ini mengembalikan bagian domain dari asal dokumen saat ini. Biasanya, ini akan menjadi bagian hostname dari URL dokumen. Namun, ada beberapa pengecualian
- Jika halaman memiliki asal buram, mis. g. untuk halaman dengan URL data, maka akan mengembalikan string kosong
- Jika const currentHostname = location.hostname; _2 telah digunakan, maka akan mengembalikan nilai yang telah ditetapkan
Meskipun getter tidak berbahaya seperti halnya setter, kemungkinan lebih sederhana dan lebih berguna untuk menggunakan properti const currentHostname = location.hostname; 3 sebagai gantinya. Maka Anda dapat menghindari const currentHostname = location.hostname; _2 sepenuhnya
const currentHostname = location.hostname;
Untuk URL //developer.mozilla.org/en-US/docs/Web, const currentHostname = location.hostname; 6 juga merupakan string "const currentHostname = location.hostname; 1". Alternatif lain yang memberikan informasi yang sedikit berbeda adalah const currentHostname = location.hostname; _8, yang mencakup port, dan const currentHostname = location.hostname; 9, yang menyediakan sumber penuh
document.domain = domainString
Setter untuk properti ini dapat digunakan untuk mengubah asal halaman, dan dengan demikian mengubah cara pemeriksaan keamanan tertentu dilakukan. Itu hanya dapat diatur ke domain yang sama atau domain induk. Misalnya, jika document.domain = domainString _0 dan document.domain = domainString 1 keduanya menggunakan
document.domain = "example.com";
kemudian mereka berdua memodifikasi asal mereka untuk memiliki domain yang sama, dan mereka sekarang dapat mengakses DOM satu sama lain secara langsung—meskipun lintas asal, yang biasanya akan mencegah akses tersebut
Perhatikan bahwa menyetel const currentHostname = location.hostname; _2 ke nilainya saat ini bukanlah tanpa operasi. Itu masih mengubah asal. Misalnya, jika satu set halaman
document.domain = document.domain;
maka itu akan dihitung sebagai asal-silang dari halaman asal yang biasanya sama lainnya yang tidak melakukan hal yang sama
Bantahan
Penyetel const currentHostname = location.hostname; _2 tidak digunakan lagi. Itu merusak perlindungan keamanan yang diberikan oleh kebijakan asal yang sama, dan memperumit model asal di browser, yang menyebabkan masalah interoperabilitas dan bug keamanan.
Mencoba menyetel const currentHostname = location.hostname; _2 berbahaya. Ini membuka akses penuh ke DOM halaman dari semua subdomain, yang mungkin bukan yang dimaksud. Itu juga menghapus komponen port dari asalnya, jadi sekarang halaman Anda dapat diakses oleh halaman lain dengan alamat IP yang sama atau komponen host yang sama, bahkan pada port yang berbeda
Ini sangat tidak aman di shared hosting. Misalnya, pelanggan hosting bersama lainnya dapat menghosting situs di alamat IP yang sama tetapi di port yang berbeda, lalu pengaturan const currentHostname = location.hostname; 2 akan menghapus perlindungan asal yang sama yang biasanya melindungi Anda dari situs pelanggan lain yang mengakses data situs Anda
Masalah serupa terjadi dengan situs hosting bersama yang memberi setiap pelanggan subdomain yang berbeda. Jika sebuah situs menyetel const currentHostname = location.hostname; _2, pelanggan lain di subdomain yang berbeda sekarang dapat melakukan hal yang sama, dan mulai mengakses data dari situs asli
Alih-alih menggunakan const currentHostname = location.hostname; _2 untuk memfasilitasi komunikasi lintas asal, Anda harus menggunakan document.domain = domainString 8 untuk mengirim pesan asinkron ke asal lain. Akses terkontrol melalui penyampaian pesan ini jauh lebih aman daripada pemaparan menyeluruh dari semua data yang disebabkan oleh const currentHostname = location.hostname; 2
Kegagalan
Setter akan melempar "SecurityError_" DOMException dalam beberapa kasus
- document.domain = "example.com"; 2 document.domain = "example.com"; 3 dinonaktifkan
- Dokumen ada di dalam kotak pasir ________19______4
- Dokumen tidak memiliki konteks penelusuran
- Dokumennya adalah document.domain = "example.com"; 5
- Nilai yang diberikan tidak sama dengan nama host halaman saat ini, maupun domain induknya
Sebagai contoh kasus kegagalan terakhir ini, mencoba menyetel const currentHostname = location.hostname; 2 ke document.domain = "example.com"; 7 saat di document.domain = "example.com"; 8 akan membuang
Selain itu, sebagai bagian dari penghentiannya, fitur ini tidak akan melakukan apa pun jika digabungkan dengan fitur isolasi modern tertentu
- Jika digunakan pada halaman terisolasi lintas asal, mis. e. salah satu yang menggunakan nilai yang sesuai untuk document.domain = "example.com"; 9 dan document.domain = document.domain; 0 header HTTP
- Jika digunakan pada halaman asal-terisolasi, mis. e. yang menggunakan header HTTP document.domain = document.domain; 1
Terakhir, pengaturan const currentHostname = location.hostname; _2 tidak mengubah asal yang digunakan untuk pemeriksaan asal oleh beberapa API Web, mencegah akses sub-domain melalui mekanisme ini. API yang terpengaruh termasuk (namun tidak terbatas pada). document.domain = document.domain; 3, document.domain = document.domain; 4, document.domain = document.domain; 5, document.domain = document.domain; 6