当前位置:网站首页>URL的结构解读
URL的结构解读
2022-07-22 21:01:00 【TW3lv3】
URL(Uniform Resource Locator)统一资源定位符,就是由一串简单的文本字符组成。一条符合规范的URL对应的是服务器的一个特定的资源(如HTML页面,一张图片等)。
Scheme: | // | Login:[email protected] | Address | :port | /path/to/resource | ?query_string | #fragment |
按照完整的URL的结构定义,一共分成上述8个部分,其中各部分有着一定的特征,并且有些部分是必须的,有些是可选的。而标准的定义与浏览器对这些标准的实现又有着很大的差异。
Scheme部分:协议部分。
协议名称是由一串不区分大小写的字母组成,以 : 作为结束符。协议所表示的是获取该资源需要使用的协议。如HTTP、HTTPS等。而浏览器将支持一些额外的协议,如data:和javascript:等。
//部分:层级URL标识符号
基本上每个URL中都会包含这个符号,是固定的;可以理解为把协议与后面的信息进行分隔开的一个符号。按照书上的说明,一个好处是Web应用无需关注某个协议的具体实现,而只需要关注于’//’符号后面的指向地址即可。
但是也存在这非层级结构的URL:例如,mailto:协议。当使用
mailto:[email protected]?....的时候,该URL将能够传递到默认的邮件客户端程序而无需其他的解析。
Login:[email protected]部分:身份验证
其实这一块信息我们看到的比较少,这是一个可选部分,一般的协议(http\https之类)都会使用默认的匿名形式进行数据获取,该部分使用的是@作为该部分的结束符号。
Address部分:服务器地址
这是一个很关键的部分,这关系到你需要从哪个服务器上去获取资源。而我们看到的比较多的是这部分以域名(htc.org)的形式呈现,还有以Ipv4(220.181.111.188)的地址呈现。当然也能够以Ipv6的形式呈现。
按照标准的描述是这部分只能用:数字、“.”、“-”组成。但浏览器对这支持的字符会比较多。
Port部分: 服务器端口
这里是属于网络端口,16位, 因此可选为[0~2^16),这里的端口并不是物理端口,而是逻辑端口;只要是为了处理多进程时数据进行传输的时候,保证各进程中数据不会发生紊乱,能够传送到相应的进程中所设定的(参考:端口_百度百科)
不同网络协议都有自己特定的端口号:如http 80
/path/to/resource:文件路径
前面提到的URL指向的是一个唯一确定的资源,而这里指向的是资源的完整路径(即存储的位置),一般都是用 / 进行分层描述。
?query_string:查询字符串
这里的查询字符串是用于参数传递给服务器端。但标准没有对这一部分有着特别严格的规定。这一部分是以 ? 开始作为标识,而现在一般的用法都是类似于以下的形式,?name=hello&id=5&… ,并且这种用法也被服务器端语言(如PHP等)所支持,如PHP获取该查询值的方法是:
$_GET['id']
$_POST['id']#fragment: 片段ID
该部分与上面的?后面的表单信息本质的区别就是这部分内容不会被传递到服务器端。一般用于页面的锚。就是我们常见的网站右下脚一般有一个回到顶部的按钮,一般就是使用其实现的。
边栏推荐
- ETL tool (data synchronization)
- iQOO 10系列来袭 OriginOS原系统强化手机体验
- 能量原理与变分法笔记11:形函数(一种降维思想)
- 使用Flutter与贝塞尔曲线画一个波浪球
- 一文理解分布式开发中的服务治理
- 删除数组中的重复项(保留最后一次出现的重复元素并保证数组的原有顺序)
- Redis basic type common commands
- How to make a high-quality VR panorama? Are there any simple ones that can be taken?
- Tensorflow2.0 sparse matrix input operation
- 便利贴--46{HbuildX连接夜神模拟器}
猜你喜欢

Classes and objects (1)

删除数组中的重复项(保留最后一次出现的重复元素并保证数组的原有顺序)

程序员45岁之后,绝大部分都被淘汰吗?真相寒了众人的心
![[untitled] share an API Gateway project developed based on ABP vNext](/img/94/bfa4fa36e4974830e6afac118a593e.png)
[untitled] share an API Gateway project developed based on ABP vNext

小程序毕设作品之微信酒店预订小程序毕业设计(6)开题答辩PPT

Flutter内存泄漏检测

第二篇如何使用SourceTree更新代码到本地

直播实录 | 37 手游如何用 StarRocks 实现用户画像分析

VR全景动物园,成就不一样的动物园名片

Draw a wave ball with the curve of flutter and Bessel
随机推荐
局域网SDN硬核技术内幕 22 亢龙有悔——规格与限制(下)
初识Flutter中的Layer
How to make a high-quality VR panorama? Are there any simple ones that can be taken?
Uno/esp8266 for tca9548a module dual channel drive 2 sh1106 1.3 "displays
Classes et objets (1)
程序员45岁之后,绝大部分都被淘汰吗?真相寒了众人的心
Codeforces Round #807 (Div. 2) A - D
小程序毕设作品之微信酒店预订小程序毕业设计(8)毕业设计论文模板
C language file operation (including all knowledge points, detailed explanation of related functions and codes)
LaTeX编写中文实验进展汇报
打板遇到的问题
现货白银走势图大致是怎么样变化的?
Nftscan and ATEM network have reached strategic cooperation in the field of NFT data
【技术科普】联盟链Layer2-论一种新的可能性
ETL tool (data synchronization)
文本攻击方法开源代码汇总
Class class added in ES6
小程序毕设作品之微信校园二手书交易小程序毕业设计成品(5)任务书
Wechat campus second-hand book trading applet graduation design finished product (5) assignment
每日刷题记录 (三十一)