2010-07-29 17 views
9

Chciałbym zapytać, czy istnieje pakiet Java lub biblioteka, które mają normalizację normalizacji adresów URL?Standardowa normalizacja adresów URL - Java

5 Składniki URL Reprezentacji

http://www[dot]example[dot]com:8040/folder/exist?name=sky#head

  1. schemat: http
  2. organ: www.example.com:8040
  3. ścieżka: /folderu/istnieje
  4. zapytania: name = niebo
  5. fragment: #head

3 typów standardowego URL normalizacji

Składnia-Based Normalizacja

  • Normalizacja sprawy - konwertuj wszystkie litery na sche ja i komponenty organ do małymi literami
  • Percent kodowane normalizację - zdekodować każdą procent kodowane oktet, który odpowiada charakteru bezwzględnego, takie jak% 2D dla myślnikiem i 5% dla podkreślenia
  • Path segmentu normalizacji - usunąć DOT-segmenty z składnik ścieżki, takie jak '' i '..'

Normalizacja Scheme-Based

  • Dodaj spływu '/' po składniku organ URL
  • Usuń Domyślny numer portu, na przykład 80 na schemacie http
  • obciąć fragment URL

Protocol-Based Normalizacja

  • Tylko właściwe, gdy wyniki dostępu do zasobów są równoważne
  • Na przykład example.com/data jest kierowana do example.com/data/ przez serwer pochodzenia

Odpowiedz

5

Jak inni wspomniano java.net.URL i/lub java.net.URI oczywistych punktów startowych.

Oto niektóre inne opcje:

  1. Galimatias (hiszpański dla „bełkot”) wydaje się być uparty i stosunkowo popularne biblioteki URL normalizacja Java. Kod źródłowy można znaleźć pod adresem github.com/smola/galimatias.

    galimatias rozpoczął od frustracji z java.net.URL i java.net.URI. Obie z nich są dobre podstawowych przypadków użycia, ale poważnie uszkodzony przez innych

  2. Biblioteka github.com/sentric/url-normalization zapewnia innego podejścia (co jest niezwykłe, moim zdaniem), gdzie odwraca część domeny; na przykład "com.stackoverflow" zamiast "stackoverflow.com".

Możesz znaleźć inne odmiany, czasem zaimplementowane w językach takich jak Python, Ruby i PHP na Github.