Rumah > Java > javaTutorial > teks badan

Cara Mengekstrak Nama Domain daripada URL dengan Boleh Dipercayai: Teknik Alternatif dan Kes Tepi

Mary-Kate Olsen
Lepaskan: 2024-11-01 01:23:02
asal
303 orang telah melayarinya

How to Extract Domain Names from URLs Reliably: Alternative Techniques and Edge Cases

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;
}
Salin selepas log masuk

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:

  • httpfoo/bar (URL relatif dengan laluan bermula dengan "http")
  • HTTP://example.com (protokol tidak peka huruf besar-besaran)
  • //example.com (URL relatif protokol dengan hos)
  • www/foo (URL relatif dengan laluan bermula dengan "www")
  • wwwexample.com (domain bermula dengan "www", tetapi bukan awalan "www")

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan