URL解析

embedded/2024/9/22 15:22:39/

目录

  • 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.ppmy.cn/embedded/9127.html

相关文章

中小学生学C++:挑战与机遇并存的教育探索

在当前教育改革的背景下&#xff0c;一些中小学开始了编程课程。那么C作为一门功能强大的编程语言&#xff0c;其复杂性引发了广泛的讨论&#xff1a;中小学生学习C是否难度过大&#xff1f; 一、C语言概述 C语言的特点&#xff1a;介绍C语言的基本特性&#xff0c;包括其面…

npm配置阿里镜像库

1、配置阿里云镜像源 #查看当前使用的镜像地址命令 npm config get registry#设置阿里镜像源 npm config set registry http://registry.npmmirror.com 这里要注意下&#xff0c;之前的镜像源地址 https://registry.npm.taobao.org/ 已经不能用了&#xff0c;这里要更改为新…

书生·浦语大模型实战营之 XTuner 微调 Llama 3 个人小助手认知

书生浦语大模型实战营之 XTuner 微调 Llama 3 个人小助手认知 Llama 3 近期重磅发布,发布了 8B 和 70B 参数量的模型,XTuner 团队对 Llama 3 微调进行了光速支持!!!开源同时社区中涌现了 Llama3-XTuner-CN 手把手教大家使用 XTuner 微调 Llama 3 模型。 XTuner:http://…

RK平台 启动硬件加速

1.xml中添加需要加速的包名 /device/rockchip/rk356x/package_performance.xml <?xml version1.0 encodingutf-8 standaloneyes ?> <performance-package> <app package"com.antutu.ABenchMark" mode"1"/> <app package"com…

OPTEE RUST支持构建并运行支持RUST的CA和TA

目录 一、RUST环境及代码准备 二、RUST构建演示 三、RUST运行演示 RUST语言,由于其更安全的编程语言特性,OPTEE作为可信执行环境的开源实现也增加了对RUST的支持。那么如何构建并运行支持RUST的CA和TA呢,本博客来探讨并进行qemu环境的实际演示。 一、RUST环境及代码准备…

6、JVM-JVM调优工具与实战

前置启动程序 事先启动一个web应用程序&#xff0c;用jps查看其进程id&#xff0c;接着用各种jdk自带命令优化应用 Jmap 此命令可以用来查看内存信息&#xff0c;实例个数以及占用内存大小 jmap -histo 14660 #查看历史生成的实例 jmap -histo:live 14660 #查看当前存活的实…

20.Unity飞机大战游戏

1任务&#xff1a;使背景图动起来 2任务&#xff1a;飞机换帧动画 3任务&#xff1a;让飞机发射子弹 4任务&#xff1a;敌机出现 5任务&#xff1a;控制飞机 6任务&#xff1a;游戏碰撞逻辑 7任务&#xff1a;另外两种类型的敌机 8任务&#xff1a;拾取奖励物品换枪 9…

Pytorch实用教程:nn.LSTM内部是如何实现的

文章目录 nn.LSTM 的基本介绍LSTM 的工作原理nn.LSTM 的源码解析查看源码的方法nn.LSTM 核心源码&#xff08;简化版&#xff09; 细节和实现 在 PyTorch 中&#xff0c; nn.LSTM 是实现长短期记忆&#xff08;Long Short-Term Memory, LSTM&#xff09;网络的一个类&#xff…