Web学习笔记:URL、URN和URI

本篇文章是对自己学习的一个总结,学习资料是JSP&Servlet学习笔记(第三版),林信良著,清华大学出版社出版。


什么是URL、URN和URI,我们先看一下他们的全名。

  • URL:Uniform Resource Locator
  • URN:Uniform Resource Name
  • URI:Uniform Resource Identifier

从名字来看,大概知道他们的作用。

  • URL

URL就是统一资源定位器,顾名思义,它是以文字方式来说明互联网上的资源如何取得。比如早期的额RFC1738,URL的主体语法格式是

<scheme>:<scheme-specific-part>  //比如https: 资源地址

scheme(协议)就是指定了要用何种协议取得资源。比如FTP(文件传输协议),HTTP(超文本传输协议),Mailto(电子邮件)。

协议的特定部分<scheme-specific-part>的格式根据特定的协议而定,通常是

//<用户>:<密码>@<主机>:<端口号>/<路径>

常见的URL不会显示密码和用户,一般只显示后面几项。比如我们连接数据库时,连接数据库的配置信息会这样写

jdbc:mysql://localhost:3306/product

jdbc:mysql是协议(不知道这里我理解的对不对),//localhost:3306/product是省略了用户和密码,只显示主机、端口号和路径信息。主机是localhost, 端口号是3306,路径是/product。

有比如我们访问某一个超文本,输入的URL如下

https://openhome.cc:8080/gossip/index.html

其中https是协议,openhome.cc是主机名,8080是端口号,/gossip/index.html是超文本资源的路径

  • URN

URN是某个资源独一无二的名称,比如JavaJDK 9学习笔记的国籍标准书号如果用URN来表示的话,应该为urn:isbn978-7-302-50118-3,具体语法规则不用了解太详细。不过URN貌似在计算机网络中没什么用(至少目前我没看到过这东西在实际开发中有什么用)。

  • URI

前面提到URL和URN都是用来定位一个资源,后来出现了一个URI标准,这个标准的定义就是只要能定位到一个资源,那就是URI。所以URI是一种抽象概念,URL和URN是具体的规则,所以URL和URN属于URI。

不过在开发中,HttpServletRequest中的getRequestURI和getRequestURL关系不是那么简单,这个以后再说。

猜你喜欢

转载自blog.csdn.net/sinat_38393872/article/details/102627690
今日推荐