Rumah  >  Artikel  >  Java  >  Cara Mengekstrak Nama Domain daripada URL dengan Boleh Dipercayai: Teknik Alternatif dan Kes Tepi

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

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-01 01:23:02313semak imbas

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;
}

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!

Kenyataan:
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