1.1 HTTP基本原理
1.URI和URL
-
URI的全称为Uniform Resource Identifier,即统一资源标志符
定义:一个用于标识某一具体资源(网页、图片、文件、人等)的字符串。
作用:告诉你“这是谁”。它只关心唯一性,不关心怎么找到它。
例子:urn:isbn:0451450523(这是一本书的国际标准书号,唯一标识了这本书,但你无法通过这个字符串直接拿到书)。 -
URL的全称为Universal Resource Locator,即统一资源定位符
定义:URI的一个子集,不仅标识了资源,还提供了访问该资源的具体途径(协议、网络位置、路径)。
作用:告诉你“它在哪里”以及“怎么去那里”。它既关心唯一性,也关心可达性。
例子:https://www.example.com/index.html(通过HTTPS协议,在example.com服务器上找到index.html文件)。 -
URN的全称为Universal Resourse Name,即统一资源名称
定义:URI的一种特定形式,它使用全球唯一且持久的名称来标识资源,但完全不涉及该资源的网络位置或访问协议。
作用:只为资源命名而不指定如何定位资源
例子:urn:isbn:0451450523指定了一本书的ISBN,可以唯一标识这本书,但没有指定到哪里获取这个本书,这就是URN -
URI包括URL和URN两个子类
-
在目前的互联网中,URN使用得非常少,几乎所有得URI都是URL,对于一般得网页链接都可以称为URL,可以称为URI
-
URL的格式规范如下:
scheme://[username:password@]hostname[:port][/path][:parameters][?query][#frament]
其中,中括号包括的内容代表非必要部分- scheme:协议。常用的协议有http、https、ftp等,另外scheme也被称作protocol,二者代表协议的意思
- username、password:用户名和密码。在某些情况下,URL需要提供用户名和密码才能访问,这时候可以把用户名和密码放在host前面。比如:https://ssr3.scrape.center这个URL需要用户名和密码才可以访问,直接写为https://admin:admin@ssr3.scrape.center则可以直接访问
- hostname:主机地址。可以是域名或IP地址。比如https://www.baidu.com 这个URL中的hostname就是www.baidu.com ,这就是百度的二级域名。比如:https://8.8.8.8 ,这个URL中的hostname就是8.8.8.8,它是一个IP地址
- port:端口。这是服务器设定的服务端口,比如:https://8.8.8.8:12345 ,这个URL中的端口就是12345。http协议的默认端口是80,https协议的默认端口是443.所以https://www.baidu.com其实相当于https://www.baidu.com:443 , http://www.baidu.com相当于http😕/www.baidu.com:80
- path:路径。指的是网络资源在服务器中的指定地址,比如:https://github.com/favicon.ico 中的path就是favicon.ico ,指的是访问GitHub根目录下的favicon.ico
- parameters:参数。用来指定访问某个资源时的附加信息。比如:https://8.8.8.8:12345/hello:user 中的user就是parameters
- query:查询。用来查询某类资源,如果有多个查询,则用&隔开。比如:https://www.baidu.com/s?wd=nba&ie=utf-8 ,其中的wd=nba&ie=utf-8就是query部分,制指定了wd是nba,ie是utf-8
- fragment:片段。它是对资源描述的部分补充,可以理解为资源内部的书签。目前它有两个应用,一个是作用单页面路由,比如现代前端框架Vue、React都可以借助它来做路由管理;另一个是用作HTML锚点,用它可以控制一个页面打开时自动下滑滚动到某个特定的位置
心揣信念,梦想就在脚下!

浙公网安备 33010602011771号