如何用Java準確地從URL中提取域名?
從 URL 中提取網域名稱
從 URL 中提取網域的任務經常出現。本文討論了此任務的常見 Java 實現,並探索了提高準確性和處理潛在邊緣情況的替代方法。
初始實作
提供的 Java 程式碼從規範化開始如果需要,可以在 URL 前面加上「http://」。然後,它使用 java.net.URL 解析 URL 以取得主機字串。最後,如果主機以“www”開頭,則為“www”之後的子字串。作為域名返回。
替代方法
但是,這種方法有局限性:
- 它無法處理某些邊緣情況,例如路徑以「 http”或“www”開頭的相對URL。
- 它假設協議是始終為小寫,這不是一個有效的假設。
- 它在 URL 相等性檢查期間執行不必要的 DNS 查找,這可能導致拒絕服務攻擊。
改進的實作
為了解決這些問題,我們建議使用 java.net.URI 進行 URL 解析。 URI 提供了更健壯和可靠的方法:
<code class="java">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; }</code>
此程式碼將 URL 轉換為 URI,取得主機字串,並刪除「www」。前綴(如果存在)。
其他注意事項
即使改進了實現,仍然可能存在一些需要注意的邊緣情況。 RFC 3986 附錄 B 提供了一個正規表示式,可以處理更複雜的 URI 解析場景。
邊緣情況
以下是一些初始實作可能失敗的額外邊緣情況處理:
- 路徑中帶有多個斜線的URL或主機
- 帶有編碼字元的URL
- 帶有查詢字串或片段識別碼的URL
- 解析為非ASCII網域的URL
整體而言,使用java.net.URI 進行URL 解析提供了一種更全面、更準確的方法來從URL中提取域名,特別是在處理複雜或可能無效的情況時網址。
以上是如何用Java準確地從URL中提取域名?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

公司安全軟件導致部分應用無法正常運行的排查與解決方法許多公司為了保障內部網絡安全,會部署安全軟件。 ...

將姓名轉換為數字以實現排序的解決方案在許多應用場景中,用戶可能需要在群組中進行排序,尤其是在一個用...

系統對接中的字段映射處理在進行系統對接時,常常會遇到一個棘手的問題:如何將A系統的接口字段有效地映�...

在使用IntelliJIDEAUltimate版本啟動Spring...

在使用MyBatis-Plus或其他ORM框架進行數據庫操作時,經常需要根據實體類的屬性名構造查詢條件。如果每次都手動...

Java對象與數組的轉換:深入探討強制類型轉換的風險與正確方法很多Java初學者會遇到將一個對象轉換成數組的�...

Redis緩存方案如何實現產品排行榜列表的需求?在開發過程中,我們常常需要處理排行榜的需求,例如展示一個�...

電商平台SKU和SPU表設計詳解本文將探討電商平台中SKU和SPU的數據庫設計問題,特別是如何處理用戶自定義銷售屬...
