Http学习:如何写出正确的网址?

一、URI(统一资源标识符)

  • 常出现在地址栏的搜索中,所以也被称为网址
  • 严格地说,URI不等于网址,它包含URL和URN两个部分,在http世界中用的实际上是url(统一资源定位符),因为url很普及,所以常把这两者视为相等

二、URI的格式

在这里插入图片描述
由四部分组成,但有的部分可以视情况省略


http://nginx.org
http://www.chrono.com:8080/11-1
https://tools.ietf.org/html/rfc7230
file:///D:/http_study/www/

如上图所示,可以省略path、query,但对于http/https来说,绝不能省略主机名,会导致浏览器无法找到服务器;但第四个uri,可以看出文件系统是可以省略主机名的,😕/后主机名被省略,默认是localhost,这也是file后为什么有三个斜杠

  1. schema:表示协议名,通常是http或https,此外还有ftp、file、news等;schema之后必须是://
  2. authority:表示资源所在的主机名,接在://之后,通常是host:port,即主机加端口号
  3. path:采用了类似于linux文件系统上的格式,以/开始

注意:uri表示的是网络上的资源,这实际上是一种抽象,即path表示的是在主机的某个位置上有一个资源;这个资源路径不一定与主机磁盘上的路径完全匹配,可以相同也可以不同,通常来说会有一个简单的转换,比如映射到不同目录;而且,图片、html等静态资源 是可以对应到文件系统的,而动态资源,它根本没有实体,所以uri完全是一个标识符的作用,不存在路径
使用协议名+主机+路径的方式,已经可以精准定位网络上任何资源,但有时候还需要对所请求资源加一些额外参数,比如想要主机上某个动物图片,但想要一个32*32的缩略图版本;获取商品列表,但想要某种规则做排序和分页,这时可能用到query查询参数

  1. query:查询参数,在path后以?开始,后面都是key-value键值对,比如http://www.abc.com:8080/11-1?uid=1234&name=mario&referer=xxx

三、URI的编码

刚才可以看出,URI里好像只能使用ASCII码,如果想使用其它语言,如中文、日语该怎么办呢?

  • 针对这个,URI有编码机制,对于ASCII以外的字符集和特殊字符做一个特殊的操作,把它们转换成与URI语义不冲突的形式;
  • 转义的规则是:把非ASCII码或特殊字符转成十六进制值,然后前面加一个%,这也就是为什么有时候看网址会有%等看不懂的字符
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我爱夜来香A

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值