URL 与 URI

很多人会混淆这两个名词。

URL:(Uniform/Universal Resource Locator 的缩写,统一资源定位符)。

URI:(Uniform Resource Identifier 的缩写,统一资源标识符)(代表一种标准)。

关系:

URI 属于 URL 更高层次的抽象,一种字符串文本标准。

就是说,URI 属于父类,而 URL 属于 URI 的子类。URL 是 URI 的一个子集。

二者的区别在于,URI 表示请求服务器的路径,定义这么一个资源。而 URL 同时说明要如何访问这个资源(http://)。

URI 示例

大家把浏览器地址栏里访问网站的地址认为是URL就好了,也就是以HTTP/HTTPS开头的URI子集。

端口 与 URL标准格式

何为端口?端口(Port),相当于一种数据的传输通道。用于接受某些数据,然后传输给相应的服务,而电脑将这些数据处理后,再将相应的回复通过开启的端口传给对方。

端口的作用:因为 IP 地址与网络服务的关系是一对多的关系。所以实际上因特网上是通过 IP 地址加上端口号来区分不同的服务的。

端口是通过端口号来标记的,端口号只有整数,范围是从0 到65535。

URL 标准格式

通常而言,我们所熟悉的 URL 的常见定义格式为:

scheme://host[:port#]/path/.../[;url-params][?query-string][#anchor]

scheme //有我们很熟悉的http、https、ftp以及著名的ed2k,迅雷的thunder等。

host //HTTP服务器的IP地址或者域名

port# //HTTP服务器的默认端口是80,这种情况下端口号可以省略。如果使用了别的端口,必须指明,例如tomcat的默认端口是8080 http://localhost:8080/

path //访问资源的路径

url-params //所带参数

query-string //发送给http服务器的数据

anchor //锚点定位

Java中对URI的操作类

@Testpublic void uriTest() throwsException{

URI uri= new URI("https://www.qiandu.com:8080/goods/index.html?username=dgh&passwd=123#j2se");

System.out.println("scheme : " +uri.getScheme());

System.out.println("SchemeSpecificPart : " +uri.getSchemeSpecificPart());

System.out.println("Authority : " +uri.getAuthority());

System.out.println("host : " +uri.getHost());

System.out.println("port : " +uri.getPort());

System.out.println("path : " +uri.getPath());

System.out.println("query : " +uri.getQuery());

System.out.println("fragment : " +uri.getFragment());

}

运行上面的代码,然后得到如下的结果:

Java中对URL的操作

@Testpublic void urlTest() throwsException{

URL url= new URL("https://www.qiandu.com:8080/goods/index.html?username=dgh&passwd=123#j2se");

System.out.println("URL: " +url.toString());

System.out.println("protocol: " +url.getProtocol());

System.out.println("authority: " +url.getAuthority());

System.out.println("file name: " +url.getFile());

System.out.println("host: " +url.getHost());

System.out.println("path: " +url.getPath());

System.out.println("port: " +url.getPort());

System.out.println("default port:" +url.getDefaultPort());

System.out.println("query: " +url.getQuery());

System.out.println("ref: " +url.getRef());

}

运行上面的代码,得到以下结果:

​UserInfo属性

其实关于资源定位的时候还有一种写法,就是类似于sftp://tomcat@www.qiandu.com///app/index.pdf就是在主机名前面有类似于xxx@的东西,其实这种表示就:用户@主机名或者用户@IP。@前面表示登录主机的用户,也就是UserInfo了。

java中 uri的格式_URI与URL详解相关推荐

  1. java中sleep()、wait()相同与不同详解

    java中sleep().wait()相同与不同详解 相同 java中Thread#sleep和Object#wait方法都是暂停当前线程,当前线程让出CPU占用.并不存在调用sleep后还占用CPU ...

  2. Java中的宏变量,宏替换详解。

    转载自 Java中的宏变量,宏替换详解. 群友在微信群讨论的一个话题,有点意思,特拿出来分享一下. 输出true false 来看下面这段程序,和群友分享的大致一样. public static vo ...

  3. url+用户名+密码_URI和URL详解

    1.URI---用于标示一个抽象或者物理资源 URI定义 URI,通一资源标志符(Universal Resource Identifier, URI),就是由某个协议方案表示的资源的定位标识符,协议 ...

  4. java runtime异常如何解决_成都汇智动力-Java中常见的RunTime异常及异常详解

    java.lang.ArithmeticException算术条件异常.譬如:整数除零等.java.lang.ArrayIndexOutOfBoundsException数组索引越界异常.当对数组的索 ...

  5. java 抽象 属性_在java中如何定义一个抽象属性示例详解

    前言 本文主要给大家介绍的是在java中定义一个抽象属性的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: Abstract关键字通常被用于类和方法,用来把某些行为的实现委托给 ...

  6. JAVA中的String[] args和String args[]详解。

    JAVA中的String[] args和String args[]是什么意思? 1.是什么意思? 2.怎样给args赋值? 3.补充事项 1.是什么意思? Java中的String[] args 和S ...

  7. Java 中的自动装箱和拆箱详解

    自动装箱是 Java 编译器在基本类型和它们对应的包装类之间进行的自动转换.例如,将 int 类型转换为 Integer 类型,将 double 类型转换为 Double 型等等.如果转换以相反的方式 ...

  8. java中object类型_Java常用类object详解

    1.Object概述: 类Object是类层次结构的根类.每个类都使用Object作为超类.所有对象(包括数组)都实现这个类的方法. 2.构造方法详细信息: Object只有一个无参构造方法,因为ob ...

  9. java中字符类型_Java字符类型(详解)

    [1]Java中使用单引号来表示字符常量,字符型在内存中占2个字节. char 类型用来表示在Unicode编码表中的字符.Unicode编码被设计用来处理各种语言的文字,它占2个字节,可允许有655 ...

  10. java中的静态变量的作用域_详解JAVA中static的作用

    1.深度总结 引用一位网友的话,说的非常好,如果别人问你static的作用:如果你说静态修饰 类的属性 和 类的方法 别人认为你是合格的:如果是说 可以构成 静态代码块,那别人认为你还可以: 如果你说 ...

最新文章

  1. torch.where用法
  2. Leetcode - 169. Majority Element (多数投票问题)
  3. UNITY 中List.Sort的BUG
  4. php禁用cookie后session设置方法分析
  5. sql datetime 排序_超全的数据库建表/SQL/索引规范,建议贴在工位上!
  6. [转]hadoop新手错误解决方法
  7. 如何快速完成企业应用IPv6改造
  8. Spring Boot 热启动
  9. lingo与matlab部分常用函数总结
  10. Java中的StringBuffer、StringBuilder和包装器类型
  11. Java网络编程:TCP实现聊天
  12. 七点建议帮助您部署云存储
  13. XshellXftpPortable Xshell,Xftp便携版绿色版下载
  14. swift项目:微博
  15. java 校验银行卡号_Java之——基于Luhn算法的银行卡卡号的格式校验
  16. Android距离传感器
  17. CS61B project 2 示例图的地牢地图房间走廊地图生成洞穴地图生成方法
  18. 使用计算机录制声音10,Win10怎么录制电脑内部声音 Win10电脑自身录音教程
  19. 区块链共享数据架构设计
  20. 11月初.wang域名总量TOP15:13家中国域名商上榜

热门文章

  1. VS2017超有用秘钥(亲测)
  2. Mac终端命令失效( command not found)/
  3. mac终端 install_Mac常用终端命令
  4. PDF格式转换工具百度网盘下载地址及破解方法
  5. goland 注释模板_Java程序员简历模板,怎样才是一份好的技术简历
  6. 五子棋游戏设计详解(C语言)
  7. 保研之路——北航网安学院直硕夏令营
  8. 国民体质测定标准计算机应用软件,体测标准计算器
  9. Windows安装Redis新手教程
  10. 高效记忆/形象记忆(07)110数字编码表 11-20