当前位置:网站首页>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
该部分与上面的?后面的表单信息本质的区别就是这部分内容不会被传递到服务器端。一般用于页面的锚。就是我们常见的网站右下脚一般有一个回到顶部的按钮,一般就是使用其实现的。
边栏推荐
- 局域网SDN硬核技术内幕 19 团结一切可以团结的力量
- Educational Codeforces Round 132 A - D
- Report on the progress of writing Chinese experiments by latex
- iQOO 10系列来袭 OriginOS原系统强化手机体验
- 自定义View:悬浮球与加速球
- Basic commands of redis' five basic data types
- Unity notes - use of addressables
- Custom view: levitation ball and accelerator ball
- Get to know layer in fluent for the first time
- 从BIO到实现简单多人聊天室功能--IO模型
猜你喜欢

C language program environment

便利贴--46{HbuildX连接夜神模拟器}

Stm32cubeide link script explanation

VR panoramic zoo, a zoo business card with different achievements

Are most programmers eliminated after the age of 45? The truth chilled everyone's heart

"The time of a takeaway is not as valuable as that of a programmer": treat yourself as a person after reading a book? Power on

一个浏览器用户访问服务器文件的WEB服务器

Ambire Gas Tank 推出独家 NFT 投放

Codeforces Round #809 (Div. 2) A - D1

Go语言系列-协程-GMP简介-附字节跳动内推
随机推荐
LaTeX编写中文实验进展汇报
GNU pseudo instruction definition function
开源2周年,openGauss Developer Day 2022全程亮点回顾!
我是如何在一周内拿到4份offer的?
Wechat campus second-hand book trading applet graduation design finished product (8) graduation design thesis template
Redis五大基本数据类型的基本命令
电子招标采购商城系统:优化传统采购业务,提速企业数字化升级
Codeforces Round #809 (Div. 2) A - D1
Redis basic type common commands
Go语言系列-协程-GMP简介-附字节跳动内推
Is cross modal semantic alignment optimal under comparative learning--- Adaptive sparse attention alignment mechanism IEEE trans MultiMedia
"The time of a takeaway is not as valuable as that of a programmer": treat yourself as a person after reading a book? Power on
程序员45岁之后,绝大部分都被淘汰吗?真相寒了众人的心
Codeforces Round #807 (Div. 2) A - D
SDN application layer DDoS attack defense mechanism based on API call management
Report on the progress of writing Chinese experiments by latex
Research on security situation awareness method of Internet of things based on evidence theory
js确定滚动元素和解决tab切换滚动位置独立
每日刷题记录 (三十一)
园区招商难在“哪”?产业园区招商引资困点难点问题盘点