欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

URL和URI浅理解

程序员文章站 2024-02-14 12:52:22
...

有时大家会误以为URL就是网址,其实这是不准确的,在模糊的概念中输入网址后会出现一个页面,为什么输入网址就可以找到资源呢?网址起到了什么作用呢?其实这里面网址是为了方便记忆出现的,通过网址寻找资源是通过与网址绑定的IP寻找到相应的服务器并通过三次握手建立连接,根据URL内容生成HTTP请求,服务器响应并返回相应文件,浏览器进行渲染,显示,进行第四次请求--断开连接.而DNS协议就是为第一步提供域名和IP之间的解析服务的。

DNS(Domain Name System)那么如何通过DNS找到相应的IP呢?


  1. 假设我想访问www.baidu.com,需要得到百度的IP地址

  2. 首先查询本地hosts文件,没查到将会发送请求给本地的DNS服务器进行查询,而本地DNS服务器是一般网络接入服务商提供。

  3. 本地DNS查询将会对本地的缓存记录进行比对,有就返回,没有就继续向根DNS服务器发出请求。

  4. 根DNS服务器将会继续对域(com)服务器进行请求查询,域服务器将会返回对应的域名服务器(baidu.com)的解析服务器地址。

  5. 本地DNS服务器最后通过返回的域名解析服务器地址进行查询,并将域名和服务器对应关系缓存到本地。


以上是如何通过域名查找到相应IP,可是域名并不是完全体的URL,URL全称Uniform Resource Locator,(统一资源定位符)即互联网中资源(文件)的具体位置

根据*中定义的统一资源定位符的完整格式:
协议类型:[//[访问资源需要的凭证信息@]服务器地址[:端口号]][/资源层级UNIX文件路径]文件名[?查询][#片段ID]

其中【访问凭证信息@;:端口号;?查询;#片段ID】都属于选填项。]

格式书写入如下:

http://user:[email protected]:80/dir/index.html?uid=1#ch1

其中的www.example.com就是DNS可解析的地址即域名。

URI全称 Uniform Resource Identity,可以出钱理解为URI用字符串标识某一个资源,不限于网络资源,表示范围更加广泛。
格式如下

scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment]
http://example.org/absolute/URI/with/absolute/path/to/resource.txt
ftp://example.org/resource.txt
urn:issn:1535-3613

URI可以使用多种scheme来实现多种资源标识,URL 可以认为是 URI的子集。