学习笔记 HTTP权威指南 第2章 URL和资源

209 阅读3分钟

2.1 访问网上的资源

URL就是资源的位置.类似于一个盲文的详细地址.有了它,才能找到资源.

2.2 URL语法

一个URL由9部分组成,但最常用的只有3部分.即协议,主机和路径.

2.2.1 方案

  • 解析URL的协议
  • 指定应用程序用这种协议来解析URL
  • 由字母开始,不区分大小写
  • 分界符是第1个:
  • 默认值是http

2.2.2 主机和端口

  • 主机指明资源在哪台电脑上
  • 可以是域名/IP地址
  • 端口指定从哪个地方可以获取这个资源
  • 主机和端口之间用:隔开
  • 端口默认值是80

2.2.3 用户名密码

  • 分界符是@
  • 用户名和密码之间用:隔开
  • 用户名默认是anonymous
  • 默认密码不同的浏览器不一样

2.2.4 路径

  • 指明资源在服务器的什么位置
  • 分界符是/

2.2.5 参数

  • 跟在路径段后面的键值对
  • 提供更多的输入参数
  • 分界符是;

2.2.6 查询字符串

  • 跟在路径后面的键值对
  • 用来缩小查询范围
  • 分界符是?

2.2.7 片段

  • 跟在查询字符串后面的字符串
  • 用来表示资源的某一部分
  • 分界符是#

2.3 URL快捷方式

2.3.1 相对URL

除了完整的输入URL外,还可以偷个懒,就是用简写的方式.

浏览器会根据基础URL自动拼接绝对URL.如果没有显示提供基础URL<base>,则会取所属资源的URL作为基础URL

浏览器会根据书上P36的算法拼接绝对URL

以前一直以为,只有./或者/开头的才叫相对URL,实际上,只要是差了某个URL组成部分的URL都可以是相对URL.所以/news/detail?id=1可以简写成?id=1

2.3.2 自动扩展URL

这个其实就是说的浏览器录自动完成和历史纪录保存功能

2.4 URL字符

为什么要限制URL字符

  • URL要便于人阅读
    • 空格这些虽然能传输但是肉眼看不到
    • 所以要删除
  • URL要完整包含所有字符
    • 除了安全字母外,还要夹带其他数据才能满足需要
    • 所以需要用到转义
  • URL传输时不能丢失信息
    • 像SMTP协议,传输时会丢失信息
    • 所以URL只能选最安全的那些字母组成

2.4.1 URL字符集

  • 采用US-ASCii字符集
    • 因为报文是由7位的2进制编码,超过7位会被丢弃如中文
    • 所以只能选择ASCii来,因为他也是7位二进制编码
  • 其他字符都需要通过转义放进URL里面

2.4.2 编码机制

  • % + 表示字符的ASCii码的十六进数组成
~ => %7E
% => %25

2.4.3 字符限制

有哪些字符需要编码转义呢,就是下面这些,具体的可参考书P39

  • 是保留字,本身用于URL指定用途的
  • 可能和其他协议产生冲突的
  • ASCii不可打印的区间的
  • 十六进制值不在US-ASCii范围内的即 >0x7F的

TODO

2.2.5 参数有啥实际用途?和查询字符串的区别?