URL解析

news2024/11/15 20:04:28

目录

  • URI
  • URL
    • URL语法
    • 相对URL
    • URL中的转义
  • 现在与未来
    • PURL

URL出现之前,人们如果想访问网络中的资源,就需要使用不同的 应用程序,如共享文件需要使用 FTP程序,想要发送邮件必须使用 邮件程序,想要看新闻那只能使用 新闻阅读程序

我们不能期望用户能有拥有所有的应用程序并且能使用它们

而当URL推出之后,这些问题就不复存在了,URL应用程序提供了一种访问资源的手段
通过使用URLweb浏览器,人们再也不需要使用那些繁多且复杂的应用程序了

URI

在了解什么是URL是什么之前,我们需要知道什么是URI
URI是一种更通用的资源标识符,它是一个更加通用的概念,这个概念包含了URLURN
一个URL肯定是一个URI,但一个URI不一定是一个URL
虽然http规范将更通用的概念URI作为其资源标识符,但实际上,HTTP应用程序处理的只是URIURL子集

URL

URL全称为统一资源定位符,它通过资源在互联网中的位置来标识资源

URL语法

一个URL含有至多9个部分
URL
URL中最重要的就是schemehostpath三部分
我们接下来对这9个部分进行总结

组件描述默认值
scheme方案,也可以称作协议,方案规定了在访问此资源时所使用的协议,方案必须以一个字母开头,以://作为分隔,方案不区分大小写无,不可省略,必须填写
user访问方案访问时可能需要进行用户名验证,如ftp匿名 anonymous
password某些方案访问时可能需要进行密码验证每个浏览器默认值不相同
host即资源所存放的机器,可以使用主机名表示,也可以使用ip表示无,不可省略,必须填写
port服务器所监听的端口每个协议不同
path路径说明了资源存放在服务器的哪一个地方,路径是服务器定位资源时所需的信息无,不可省略,必须填写
params对于某些方案来说,只有以上内容是不够的,通过这个组件来输入参数,以此来补全信息
query与params类似,同样都是补全信息,但params是针对服务器程序设置的,这个是针对程序所提供的服务设置的
frag通常情况下,当我们得到一个html文档时,我们默认是停留在最顶端,如果这个html进行了分段,那我们就可以通过这个组件直接访问指定的分段

几乎没有URL是将这9段组件全部使用完全的

相对URL

到这里,我们所学的URL都是绝对URL,其实还有一种URL被称为相对URL
相对URL即在服务器内部定位资源的一种URL,它是一种确保了资源可移植性快捷方式,只要引用文件资源相对位置不变,就能保证资源能被正常访问
以下是一个相对URL的例子

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <a href="./a.html"></a>
</body>

</html>

浏览器解析到相对URL时,浏览器会先将其和基础URL合并补全为绝对URL,具体补全规则如下

  1. 资源中显式提供
    如果资源中显示的指定了基础URL则将使用它来转换绝对URL,如html文档中的base元素
  2. 使用引用资源的URL
    如果资源中没有显式的指定基础URL,则会使用引用文件中的URL来作为基础URL
  3. 没有基础URL
    如果一个资源既没有显式指定URL,或者引用文件也无法确定URL,那么它就有两种情况,一是相对URL本身是一个绝对URL,二是URL报错

基于以上规则,我们就能确定一个相对URL绝对URL

URL中的转义

除了URL本身就能表示多种协议外,在URL传递过程中也会经历多种协议,某些协议对于传送的字符没有要求,某些协议则会对不合法的字符进行过滤,为了确保URL能在互联网上安全准确的传输,我们必须使用一种安全的,通用的字符编码,现在全世界最通用的编码应当是ASCII码,它包含了数字字母以及一些常用符号,使用ASCII编码自然确保了URL的安全与准确,但是这个世界上不只有字母数字和一些符号,我如果需要传递一些非ASCII字符,我们该怎么办呢

URL提供的解决方案为将不安全的字符编码为安全的字符

这种编码机制就是通过一种转义表示法来表示不安全字符的,这种转义表示法包含一个百分号(%),后面跟着两个表示字符ASCII码的十六进制数

现在与未来

毫无疑问,URL是一种极强的资源标记工具,通过资源所处互联网中的位置来确定资源,但URL也有缺点,一旦资源被移走或更改了存储位置,原先的URL就失效了,为了解决这个问题IETF规定了一种新标准URN,但目前的URN还难以取代URL的地位

PURL

PURL统一永久资源定位符,它是URN的一种是实现方案,其原理是通过一个中间层来将URL资源相分离,从此URL不再指向资源的实际存储位置,不管资源存放到哪,当使用URL访问时通过中间层都能得到这个资源

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

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

相关文章

VSCode 配置 C/C++ 环境

1 安装 VSCode 直接去官网(https://code.visualstudio.com/)下载并安装即可。 2 配置C/C编译环境 方案一 如果是在Windows&#xff0c;需要安装 MingW&#xff0c;可以去官网(https://sourceforge.net/projects/mingw-w64/)下载安装包。 注意安装路径不要出现中文。 打开 w…

JAVA面向对象(下)(四、内部类、枚举、包装类)

一、内部类&#xff08;续&#xff09; 1.1 内部类的分类 按照声明的位置划分&#xff0c;可以把内部类分为两大类&#xff1a; 成员内部类&#xff1a;方法外 局部内部类&#xff1a;方法内 public class 外部类名{【修饰符】 class 成员内部类名{ //方法外}【修饰符】 返…

力扣刷题 70.爬楼梯

题干 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 示例 1&#xff1a; 输入&#xff1a;n 2 输出&#xff1a;2 解释&#xff1a;有两种方法可以爬到楼顶。 1. 1 阶 1 阶 2. 2 阶 示例 2&…

HarmonyOS开发实例:【图片编辑应用】

介绍 本篇Codelab通过动态设置元素样式的方式&#xff0c;实现几种常见的图片操作&#xff0c;包括裁剪、旋转、缩放和镜像。效果如图所示&#xff1a; 相关概念 [image组件]&#xff1a;图片组件&#xff0c;用来渲染展示图片。[div组件]&#xff1a;基础容器组件&#xff0…

PLC_博图系列☞N=:在信号下降沿置位操作数

、 PLC_博图系列☞N&#xff1a;在信号下降沿置位操作数 文章目录 PLC_博图系列☞N&#xff1a;在信号下降沿置位操作数背景介绍N&#xff1a; 在信号下降沿置位操作数说明参数示例 关键字&#xff1a; PLC、 西门子、 博图、 Siemens 、 N 背景介绍 这是一篇关于PLC编程的…

Python网络数据抓取(3):Requests

引言 在这一部分&#xff0c;我们将探讨Python的requests库&#xff0c;并且利用这个库来进行网页数据抓取。那么&#xff0c;我们为何需要这个库&#xff0c;以及怎样利用它呢&#xff1f; requests库是广受大家欢迎的一个库&#xff0c;它是下载次数最多的。这个库使我们能够…

C语言学习/复习27----sizeof/strlen/数组/指针

一、数组笔试题目解析 1.一维数组 1.sizeof()操作符与int数组 注意事项1&#xff1a;sizeof()依据类型推断大小 注意事项2&#xff1a;注意区分是( )内是地址还是普通元素类型 注意事项3&#xff1a;&#xff08;&#xff09;内是单独的数组名时计算整个数组的大小&#xff0c;…

海外服务器被恶意攻击怎么办

如果您的海外服务器遭受了恶意攻击&#xff0c;以下是一些应对措施和步骤&#xff0c;立即隔离服务器。如果您察觉到服务器受到恶意攻击&#xff0c;立即隔离服务器&#xff0c;将其与网络隔离&#xff0c;以防止攻机进一步扩散。通知服务器提供商&#xff0c;以便他们能够提供…

有了可视化工具,你定制设计得瑟瑟发抖了吧,其实你想多了。

目前市面上有N多可视化的工具&#xff0c;可以做成可视化大屏&#xff0c;甚至有很多B端系统也附带可视化页面&#xff0c;据此就有很多人开始怀疑我们这些做定制开发的&#xff0c;还有啥生存空间。 其实你真的多虑了&#xff0c;存在即合理&#xff0c;我们承认可视化工具的标…

小白必备:Python必须掌握的十大模块,建议收藏!

前言 Python 是一种高级、解释型和通用动态编程语言&#xff0c;侧重于代码的可读性。 它在许多组织中使用&#xff0c;因为它支持多种编程范例。 它还执行自动内存管理。 它是世界上最受欢迎的编程语言之一。 这是有很多原因的&#xff1a; 这很容易学习。它超级多才多艺。…

05集合-CollectionListSet

Collection体系的特点、使用场景总结 如果希望元素可以重复&#xff0c;又有索引&#xff0c;索引查询要快? 用ArrayList集合, 基于数组的。(用的最多) 如果希望元素可以重复&#xff0c;又有索引&#xff0c;增删首尾操作快? 用LinkedList集合, 基于链表的。 如果希望增…

【电机控制】滑模观测器PMSM无感控制波形图

【电机控制】滑模观测器PMSM无感控制波形图 文章目录 前言一、FOC控制1.三相电流2.Clark变换静止坐标系iαiβ3.park变换旋转坐标系idiq4.电流环PI控制输出UdUq5.UdUq 反park变换UαUβ 二、反电动势观测器BEMF1.静止坐标系iαiβ提取反电动势EaEb2.反电动势EaEb提取位置信息、…

【国信华源参加全国地质灾害防治新技术新方法新设备交流会】

4月17-18日&#xff0c;以“提升地质灾害防治能力 服务保障高质量发展”为主题&#xff0c;由中国地质灾害防治与生态修复协会主办、云南地质工程第二勘察院有限公司承办的“全国地质灾害防治新技术新方法新设备成果交流会”在云南昆明圆满召开。会议特邀中国工程院院士等知名…

实现游戏地图读取与射击运行

射击代码来源自2D 横向对抗射击游戏&#xff08;by STF&#xff09; - CodeBus 地图读取改装自 瓦片地图编辑器 解决边界检测&#xff0c;实现使用不同像素窗口也能移动不闪退-CSDN博客 // 程序&#xff1a;2D RPG 地图编辑器改游戏读取器 // 作者&#xff1a;民用级脑的研发…

【电控笔记6.3】采样-Z转换-零阶保持器

本质 数字转模拟:零阶保持器 采样 z-1所描述的物理意义即为延迟T时间的拉氏转换e-sT 信号采样延时

stable diffusion本地部署@win10

一键无脑安装stable-diffusion-webui stable diffusion是当前非常出色的文生图模型&#xff0c;要优于以前gan文生图模型。现在有了stable-diffusion-webui软件&#xff0c;可以一键安装&#xff0c;大大简化了操作难度。本文档就是stable-diffusion-webui在windows 10上的安装…

UI5:面向企业级应用的JavaScript框架

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

OpenTelemetry-1.介绍

目录 1.是什么 2.为什么使用 OpenTelemetry 3.数据类型 Tracing Metrics Logging Baggage 4.架构图 5.核心概念 6.相关开源项目 ​编辑 7.分布式追踪的起源 8.百花齐放的分布式追踪 Zipkin Skywalking Pinpoint Jaeger OpenCensus OpenTracing 9.Openteleme…

Spring Boot入门(20):轻松搞定多数据源配置,Spring Boot与Mybatis-Plus的完美结合!

前言 本文将介绍如何在Spring Boot框架下使用mybatis-plus实现多数据源配置。多数据源配置是一个常见的需求&#xff0c;在实际项目中也经常遇到&#xff0c;因此掌握多数据源配置的技巧是非常重要的。 摘要 本文将为大家介绍如何使用Spring Boot和mybatis-plus实现多数据源…

学之思考试系统环境启动QA

学之思考试系统环境启动Q&A 目录 学之思考试系统环境启动Q&A后台代码启动失败:前台代码启动失败常见解决方式参考资料后台代码启动失败: 后端代码启动不成功,不能够自动导入maven,配置依赖; 使用idea打开到:\xzs-master\xzs-mysql-master\source\xzs这个路径下;…