首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >标准URL规范化- Java

标准URL规范化- Java
EN

Stack Overflow用户
提问于 2010-07-29 17:18:24
回答 3查看 9.4K关注 0票数 9

我想问一下,是否有任何Java包或库具有标准URL规范化?

URL表示的5组件

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

  1. 计划: http
  2. 权威: www.example.com:8040
  3. 路径:/文件夹/存在
  4. 查询:?name=sky
  5. 碎片:#头

三种类型的标准URL规范化

基于语法的规范化

  • 案例规范化-将方案和权威组件中的所有字母转换为小写。
  • 百分比编码规范化-解码任何百分比编码的八进制,如%2D表示连字符,%5表示下划线。
  • 路径段规范化-从Path组件中删除点段,例如‘.’还有“..”

基于方案的规范化

  • 在URL的授权组件后面添加尾部‘/’
  • 删除默认端口号,例如http方案的80。
  • 截断URL的片段

基于协议的规范化

  • 只有当访问资源的结果等效时才合适。
  • 例如,example.com/data被定向到example.com/data/ by源服务器
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-07-29 17:28:59

代码语言:javascript
复制
URI uri = URI.create("http://www.example.com:8040/folder/exist?name=sky#head");
String scheme = uri.getScheme();
String authority = uri.getAuthority();
// ...

https://docs.oracle.com/javase/1.5.0/docs/api/java/net/URI.html

票数 3
EN

Stack Overflow用户

发布于 2014-08-07 22:53:31

正如其他人所提到的,java.net.URL和/或java.net.URI是一些明显的起点。

以下是其他一些选择:

  1. 加里马提亚斯 (西班牙语的意思是“胡说八道”)似乎是一个固执己见的相对流行的Java规范化库。源代码可以在github.com/smola/galimatias上找到。 galimatias最初是出于对java.net.URL和java.net.URI的失望。这两种方法都适合于基本用例,但对于其他用例则严重受损。
  2. Github.com/sentric/url-正常化库提供了另一种(我认为是不寻常的)方法,它反转域部分,例如"com.stackoverflow“而不是"stackoverflow.com”。

您可以找到其他变体,有时是用Python、Ruby和PHP等语言实现的。

票数 5
EN

Stack Overflow用户

发布于 2010-07-29 17:26:11

java.net.URL set()呢?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3365271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档