URL解析

目录

  • 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.hqwc.cn/news/640028.html

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

相关文章

Agent 智能体食用指南

Agent 智能体食用指南 三年前都在 ALL in AI&#xff0c;一年前都在 ALL in LLM&#xff0c;现在都在 ALL in AgentAutoGEN分析MetaGPT 分析RAG 分析MOE 多专家分析 三年前都在 ALL in AI&#xff0c;一年前都在 ALL in LLM&#xff0c;现在都在 ALL in Agent 科技圈焦点&…

【Java】常见锁策略 CAS机制 锁优化策略

前言 在本文会详细介绍各种锁策略、CAS机制以及锁优化策略 不仅仅局限于Java&#xff0c;任何和锁相关的话题&#xff0c;都可能会涉及到下面的内容。 这些特性主要是给锁的实现者来参考的. 普通的程序猿也需要了解一些, 对于合理的使用锁也是有很大帮助的 文章目录 前言✍一、…

【笔试强训】day8

没啥好说&#xff0c;都是一遍过 1.求最小公倍数 思路&#xff1a; 求lcm。其实就是两数之乘积除以两个数的gcd。gcd就是是求两个数的最大公约数。 代码&#xff1a; #define _CRT_SECURE_NO_WARNINGS 1 #include <iostream> using namespace std;int gcd(int a, int …

海外媒体如何发布软文通稿

大舍传媒-带您了解海外发布新潮流 随着全球化的不断深入&#xff0c;越来越多的中国企业开始关注海外市场。为了在国际舞台上树立品牌形象&#xff0c;企业纷纷寻求与海外媒体合作&#xff0c;通过发布软文通稿的方式&#xff0c;传递正面信息&#xff0c;提升品牌知名度。作为…

基于springboot实现的摄影跟拍预定管理系统

开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven…

实验2 NFS部署和配置

一、实训目的 1.了解NFS基本概念 2.实现NFS的配置和部署 二、实训准备 1.准备一台能够安装OpenStack的实验用计算机&#xff0c;建议使用VMware虚拟机。 2.该计算机应安装CentOS 7&#xff0c;建议采用CentOS 7.8版本。 3.准备两台虚拟机机&#xff08;客户机和服务器机&…

Attention和Transformer灵魂七问

1. 引言 最近&#xff0c;ChatGPT和其他聊天机器人将大语言模型LLMs推到了风口浪尖。这就导致了很多不是学ML和NLP领域的人关注并学习attention和Transformer模型。在本文中&#xff0c;我们将针对Transformer模型结构提出几个问题&#xff0c;并深入探讨其背后的技术理论。这…

每日算法之矩阵置零

题目描述 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,1,1],[1,0,1],[1,1,1]] 输出&#xff1a;[[1,0,1],[0,0,0],[1,0,1]] 示例 2&#xff1a; 输入&#x…

Linux的网络传输

端口 端口&#xff0c;是设备与外界通讯交流的出入口。端口可以分为&#xff1a;物理端口和虚拟端口两类 物理端口&#xff1a;又可称之为接口&#xff0c;是可见的端口&#xff0c;如USB接口&#xff0c;RJ45网口&#xff0c;HDMI端口等虚拟端口&#xff1a;是指计算机内部的…

net模块

建立TCP的链接 1 发送消息的服务 2 接收消息 2 建立http的链接让浏览器进行访问 import net from netconst html <h1>TCP</h1>const respinseHeaders [HTTP/1.1 200 OK,Content-Type:text/html,Content-Length: html.length,\r\n,html]const http net.create…

20240331-1-基于深度学习的模型

基于深度学习的模型 知识体系 主要包括深度学习相关的特征抽取模型&#xff0c;包括卷积网络、循环网络、注意力机制、预训练模型等。 CNN TextCNN 是 CNN 的 NLP 版本&#xff0c;来自 Kim 的 [1408.5882] Convolutional Neural Networks for Sentence Classification 结…

核桃派全志H616实现VNC远程桌面教程

VNC远程桌面 核桃派预装了VNC服务器&#xff0c;VNC适应于局域网&#xff08;通常指同一个路由器网络下&#xff09;桌面登录。使用该服务前先确保核桃派已经通过以太网或无线WiFi连接到路由器。 使用核桃派桌面系统的时候由于要配置各类信息和联网&#xff0c;可以使用HDMI显…