【面试题】HTTP 协议中 URI 和 URL 的区别

URI: Uniform Resource Identifier, 统一资源标识符。用来唯一标识资源,是一种语义上的抽象概念。

URL: Uniform Resource Locator, 统一资源定位符。用来定位唯一的资源, 必须提供足够的定位信息。

1. URI和URL的区别:

统一资源标识符URI就是在某一规则下能把一个资源独一无二地标识出来。

拿人做例子,假设这个世界上所有人的名字都不能重复,那么名字就是URI的一个实例,通过名字这个字符串就可以标识出唯一的一个人。

现实当中名字当然是会重复的,所以身份证号才是URI,通过身份证号能让我们能且仅能确定一个人。

那统一资源定位符URL是什么呢。也拿人做例子然后跟HTTP的URL做类比,就可以有:

动物住址协议://地球/中国/浙江省/杭州市/西湖区/某大学/14号宿舍楼/525号寝/张三.人

可以看到,这个字符串同样标识出了唯一的一个人,起到了URI的作用,所以URL是URI的子集。URL是以描述人的位置来唯一确定一个人的。

在上文我们用身份证号也可以唯一确定一个人。对于这个在杭州的张三,我们也可以用:

身份证号:123456789 来标识他。

所以不论是用定位的方式还是用编号的方式,我们都可以唯一确定一个人,都是URl的一种实现,而URL就是用定位的方式实现的URI。

回到Web上,假设所有的Html文档都有唯一的编号,记作html:xxxxx,xxxxx是一串数字,即Html文档的身份证号码,这个能唯一标识一个Html文档,那么这个号码就是一个URI。

而URL则通过描述是哪个主机上哪个路径上的文件来唯一确定一个资源,也就是定位的方式来实现的URI。

对于现在网址我更倾向于叫它URL,毕竟它提供了资源的位置信息,如果有一天网址通过号码来标识变成了http://741236985.html,那感觉叫成URI更为合适,不过这样子的话还得想办法找到这个资源咯…

2. 两者的作用

2.1 url的作用

        url一般是一个完整的链接,我们可以直接通过这个链接(url)访问到一个网站,或者把这个url复制到浏览器访问网站。 使用URL时我们就是一个直接用户的角色,直接访问就完事了。

2.2 uri的作用

        uri并不是一个直接访问的链接,而可以是相对地址(当然如果相对于浏览器那么uri等同于url了)。这种概念更多的是用于编程中,因为我们没必要每次编程都用绝对url来获取一些页面,这样还需要进行分割“http://xx/xxx”前面那一串,所以编程的时候直接request.getRequestURI就行了,当然如果是重定向的话,就用URL。

转自知乎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/588215.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Springcloud Alibaba使用Canal将Mysql数据实时同步到Redis保证缓存的一致性

目录 1. 背景 2. Windows系统安装canal 3.Mysql准备工作 4. 公共依赖包 5. Redis缓存设计 6. mall-canal-service 1. 背景 canal [kənl] ,译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。其诞…

C语言实验5:结构体

目录 一、实验要求 二、实验原理 1. 普通结构体 1.1 显示声明结构体变量 1.2 直接声明结构体变量 ​编辑 1.3 typedef在结构体中的作用 2. 结构体的嵌套 3. 结构体数组 4. 指向结构体的指针 4.1 静态分配 4.2 动态分配 三、实验内容 1. 学生数据库 代码 截图 …

矩阵微分笔记(3)

目录 前言矩阵求导1. 矩阵的迹1.1 定义1.2 迹的性质 2. 矩阵微分的几种情况2.1 向量变元的实值标量函数2.2 矩阵变元的实值标量函数2.3 矩阵变元的实矩阵函数 3. 矩阵微分3.1 矩阵微分的意义3.2 矩阵微分示范 参考 前言 这篇笔记的内容是基于参考的文章写出的,公式…

HarmonyOS ARKUI深度解析:图像组件及权限配置实战指南

文章目录 深入学习RKUI中的图片组件及权限配置图片组件简介图片源的三种格式Image : 图片显示组件图片组件属性及样式控制图片权限配置文章总结问题总结深入学习RKUI中的图片组件及权限配置 在本文中,我们将深入学习ArkUI(HarmonyOS UI框架)中的图片组件及其相关属性,同时…

vue 项目 添加 页面上方 NProgress进度条

NProgress官网和Github地址 路由 跳转时 页面上方 和 右上角 会有一个加载进度 安装 使用npm安装 npm install --save nprogress 基本用法 main.js 引入 import NProgress from “nprogress”; import “nprogress/nprogress.css”; 开关和关闭 start()开启NProgress进度条d…

基于Ubuntu环境Git服务器搭建及使用

基于Ubuntu环境Git服务器搭建及使用 Chapter1 搭建本地git服务器及详细操作步骤1.搭建本地git服务器1.1 环境1.2 服务端配置1.3 创建git专属用户1.4 创建git仓库1.5 配置免密登录基础 2.客户端拉取推送代码2.1客户端创建ssh公钥 2.2 免密配置3.仓库使用(拉取及推送代…

VCD Value Change Dump格式解析

VCD ValueChange Dump 是一种记录被选择信号在仿真过程中的变化情况的ASCII文件格式。常用的有四值格式(数值变化0,1,x,z,不含强度信息),扩展格式(含数值变化的所有信息)。 以四值格式VCD为例。 $dateThu Dec 28 …

【linux】tail的基本使用

在linux可以用find查找一个文件,可以用grep查找符合要求的文件内容,但是有的时候希望查看文件的前几行或者后几行(其实这种场景经常可以遇到,比如接触到日志分析的时候),那就应该使用head和tail这两个工具了…

如何使用ModuleShifting测试Module Stomping和Module Overloading注入技术

关于ModuleShifting ModuleShifting是一款针对Module Stomping和Module Overloading注入技术的安全测试工具,该工具基于Python ctypes实现其功能,因此可以通过Python解释器或Pyramid在内存中完整执行,这样就可以避免使用编译加载器了。 需要…

基于SpringBoot的中小型企业质量管理

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SpringBoot的中小型企业质量管理,ja…

大语言模型(LLM)训练平台与工具

LLM 是利用深度学习和大数据训练的人工智能系统,专门 设计来理解、生成和回应自然语言。 大模型训练平台和工具提供了强大且灵活的基础设施,使得开发和训练复杂的语言模型变得可行且高效。 平台和工具提供了先进的算法、预训练模型和优化技术&#xff0c…

HarmonyOS 组件通用属性之通用事件 文档参数讲解(点击事件)

我们组件中 会有很多通用的信息和方法 那么 首先 我们看通用事件 通用事件中 最常用的就是我们的点击事件 比如说 我们之前常写的 组件.onClick(()>{//事件逻辑 })但是 我们之前 都没有用它接参数 我们可以这样 Button("跳转").onClick((ewat: ClickEvent)>…

边界判断缺失

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 学习必须往深处挖&…

2023年03月20日_对李开复3月20日线下媒体会的解读

最近这个AI大模型 因为GPT4.0 ChatGPT 文心一言等等这些事情呢 一下子就被推到了风口浪尖 我们也做了来介绍相关的进展 国内呢也不断有一些大佬开始下场 包括王慧文、张朝阳、李彦宏什么的 都开始说自己要搞AI大模型 就在昨天呢 创新工厂的董事长兼CEO李开复 也发朋友…

2024年:三大壁炉趋势

2024年的壁炉趋势是环保的、现代的和100%安全的,作为装饰性壁炉已经比取暖的壁炉更加受欢迎。现今,作为装饰性观赏的壁炉与为了加热取暖而开发的燃木壁炉、燃气壁炉之间存在明显区别。尽管加热取暖的壁炉在农村很有意义,但是装饰性壁炉在城市…

手拉手Springboot获取yml配置文件信息

环境介绍 技术栈 springboot3 软件 版本 mysql 8 IDEA IntelliJ IDEA 2022.2.1 JDK 17 Spring Boot 3.1.7 配置文件说明:启动配置文件优先级:properties高于yml 配置文件application.yml yml是 JSON 的超集,简洁而强大&#xf…

HTML标签基础入门

HTML 基本语法概述标签关系HTML基础结构HTML常用标签标题标签示例 段落和换行标签示例 文本格式化标签示例 div和span标签示例 图像标签和路径示例 超链接标签示例 注释 ctrl/特殊字符示例 表格标签 表头单元格标签表格属性示例 合并单元格示例 列表标签无序列表有序列表自定义…

介绍几种mfc140u.dll丢失的解决方法,找不到msvcp140.dll要怎么处理

如果你在使用电脑时遇到mfc140u.dll丢失错误时,这可能会导致程序无法正常运行,但是大家不必过于担心。今天的这篇文章本将为你介绍几种mfc140u.dll丢失的解决方法,找不到msvcp140.dll要怎么处理的一些解决方法。 一.mfc140u.dll文件缺失会有什…

数据结构【线性表篇】(一)

数据结构【线性表篇】(一) 文章目录 数据结构【线性表篇】(一)前言为什么突然想学算法了?为什么选择码蹄集作为刷题软件? 目录一、顺序表(一)、顺序表的定义(二)、顺序表的插入删除(三)、顺序表的查找 二、完整代码(一)、顺序表的…

Python generator 函数的实例详解

Python中的生成器函数,它们作为一种轻量级的迭代器,用于遍历大型数据集,以避免一次性加载整个数据集到内存中。然而,生成器函数的潜能远不止于此。在本文中,深入探讨生成器函数的各种用途和技巧,以及如何充…