《http权威指南》阅读笔记,第二章,URL与资源

URL基本格式

< scheme>://< user>:< password>@< host>:< port>/< path>;< params>?< query>#< frag>

通用的URL组件

组件 描述 默认值
方案 获取资源要使用的协议
用户 用户名 匿名
密码 跟在用户名后面,用冒号(:)隔开 <e-mail地址>
主机 主机名或者ip地址
端口 各个方案特有的默认端口 方案特有
路径 可以多个,以斜杠(/)分割,可以加参数([;params])
查询 ?name=bob&age=3
片段 #title,只是给浏览器识别,不能分割资源

方案

不区分大小写,http与HTTP是一样一样的

主机与端口

既可以是域名,也可以是ip地址

用户名与密码

用户不填就是匿名,并发 送一个默认的密码( Internet Explorer 会发送 IEUser, Netscape Navigator 则会发送 mozilla)

路径

路径参数在每个路径段都可以有
eg: http:// www. joes- hardware. com/ hammers; sale= false/ index. html; graphics= true

查询字符串

eg: https://baike.baidu.com/item/URL%E6%A0%BC%E5%BC%8F/10056474?fr=aladdin

片段

#锚点,给客户端识别用的,并不能切割资源

相对URL(举个栗子)

xxx/xxx.html node_modules目录or当前目录(看解析方式)
/xxx/xxx.html 根目录
./xxx/xxx.html 当前目录
../xxx/xxx.html 上级目录
../../xxx/xxx.html 上上级目录

自动拓展URL

主机名拓展 与 历史拓展(浏览器的甜点)

baidu => www.baidu.com

令人头痛的的字符

设计url的人希望可以被人类阅读,又不希望丢失不可见,不可打印的字符,于是需要对不安全的字符进行转义。
不安全的字符: 尼玛其实就是老外不认识的字儿,比如我们汉字目录,有些程序不识别,就会报错,就不安全咯!当然不止这些咯

方案的世界

方案 描述
http 默认端口:80
http://< host>:< port>/< path>?< query>#< frag>
https 默认端口443 格式同上
mailto mailto: joe@ joes- hardware. com
ftp 基本格式: ftp://< user>:< password>@< host>:< port>/< path>;< params>
示例: ftp:// anonymous: joe% 40joes- hardware. com@ prep. ai. mit. edu: 21/ pub/ gnu/
rtsp ,rtspu RTSP URL 是可以通过实时流传输协议( Real Time Streaming Protocol) 解析的音/ 视频媒体资源的标识符。
方案 rtspu 中的 u 表示它是使用 UDP 协议来获取资源的。
基本格式:
rtsp://< user>:< password>@< host>:< port>/< path>
rtspu://< user>:< password>@< host>:< port>/< path>
示例: rtsp:// www. joes- hardware. com:554/ interview/ cto_video
file 在桌面建个html文件,双击就可以在浏览器看到效果
news 用来访问新闻与新闻组
news:< newsgroup>
news:< news- article- id>
示例: news: rec. arts. startrek
telnet 用于访问交互式业务

展望未来

URL的缺点是,路径对应文件,移动文件这个URL就失效了.
URN 一个名字对应一个文件,不管文件在哪个服务器,感觉有点MD5的味道
PURL 永久统一资源定位符,URL对URN的实现,中间加入一个寻址层,文件变动需要在这里注册,实现实时更新地址

推荐阅读更多精彩内容