2010-07-29 43 views
9

Tôi muốn hỏi liệu có bất kỳ gói Java hoặc thư viện nào có chuẩn hóa URL chuẩn không?Chuẩn hóa URL chuẩn - Java

5 thành phần của URL Đại diện

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

  1. Đề án: http
  2. quyền: www.example.com:8040
  3. đường dẫn: /thư mục/tồn tại
  4. truy vấn:? name = bầu trời
  5. đoạn: #head

3 loại bình thường URL tiêu chuẩn

Cú pháp-Based Normalization

  • Trường hợp bình thường - chuyển đổi tất cả thư tại sche các thành phần của tôi và quyền hạn cho trường hợp thấp hơn
  • Mã hóa phần trăm được mã hoá phần trăm tương ứng với ký tự không được đặt trước, chẳng hạn như% 2D cho dấu gạch ngang và% 5 cho gạch dưới
  • các thành phần đường dẫn, ví dụ như '' và '..'

Scheme-Based Normalization

  • Thêm trailing '/' sau khi các thành phần thẩm quyền của URL
  • số cổng mặc định
  • Remove, chẳng hạn như 80 cho chương trình http
  • Truncate đoạn URL

Nghị định thư-Based Normalization

  • Chỉ thích hợp khi kết quả của việc tiếp cận các nguồn lực tương đương
  • Ví dụ: example.com/data được chuyển hướng đến example.com/data/ bởi máy chủ gốc

Trả lời

5

Như những người khác đã đề cập, java.net.URL và/hoặc java.net.URI là một số điểm khởi đầu rõ ràng.

Dưới đây một số tùy chọn khác:

  1. Galimatias (tiếng Tây Ban Nha cho "vô nghia") dường như là một thư viện URL bình thường khăng khăng và tương đối phổ biến cho Java. Mã nguồn có thể được tìm thấy tại github.com/smola/galimatias.

    galimatias bắt đầu thất vọng với java.net.URL và java.net.URI. Cả hai đều tốt đối với trường hợp sử dụng cơ bản, nhưng bị phá vỡ nghiêm trọng cho người khác

  2. Thư viện github.com/sentric/url-normalization cung cấp một cách tiếp cận (, theo ý kiến ​​của tôi không bình thường), nơi nó đảo ngược phần miền; ví dụ. "com.stackoverflow" thay vì "stackoverflow.com".

Bạn có thể tìm thấy các biến thể khác, đôi khi được triển khai bằng các ngôn ngữ như Python, Ruby và PHP trên Github.