Mengekstrak Nama Domain daripada URL
Soalan ini bertujuan untuk mengekstrak nama domain daripada URL dengan berkesan. Walaupun kod Java yang disediakan kelihatan berfungsi dengan munasabah, pengarang bertanya tentang sebarang teknik unggul atau potensi kes kelebihan yang mungkin menjejaskan kebolehpercayaannya.
Pelaksanaan Alternatif Menggunakan java.net.URI
Pendekatan yang lebih bersih untuk menghuraikan URL disyorkan, menggunakan kelas java.net.URI dan bukannya java.net.URL. Yang terakhir ini mempunyai isu yang diketahui, seperti kaedah equals yang bermasalah, yang boleh mendedahkan kod kepada kelemahan dalam senario yang melibatkan input yang tidak dipercayai:
public static String getDomainName(String url) throws URISyntaxException { URI uri = new URI(url); String domain = uri.getHost(); return domain.startsWith("www.") ? domain.substring(4) : domain; }
Kaedah yang dipertingkatkan ini seharusnya mendapatkan semula nama domain dengan berkesan semasa mengendalikan kes kelebihan yang melibatkan selongsong yang salah atau variasi dalam awalan "www".
Kes Edge Tambahan untuk Dipertimbangkan
Kod asal gagal mengambil kira format URL tertentu:
Untuk menangani kes kelebihan ini, pertimbangkan untuk merujuk Lampiran B RFC 3986, yang menyediakan ungkapan biasa yang komprehensif untuk menghuraikan rujukan URI dan memecahkannya kepada komponen individu.
Atas ialah kandungan terperinci Cara Mengekstrak Nama Domain daripada URL dengan Boleh Dipercayai: Teknik Alternatif dan Kes Tepi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!