另外还有像 olocation api 用于获取用户地理位置,webrtc api 用于实现实时通信等。不过这些 api 虽然能为网页开发者拓展了丰富的功能,让网页能更好地与用户设备及外部环境交互,但因为目前计算机还不具备这些能力,后续再逐步添加也来得及。
最后,无障碍访问标准、安全标准、多媒体标准等也不容忽视。虽然具体内容暂时无法确定,但必须明确这些标准是需要精心设计的。这样一来,在标准发布后,其他人便能有意识地参与补充完善。
明确了超文本标记语言、统一资源定位符、超文本传输协议、网络编程语言、样式表语言这五大标准类型后,秦奕开始着手定义每个标准的具体内容。
他直接参考前世经过几十年演化后的成熟标准进行设计,以此规避曾经走过的弯路。
以超文本标记语言为例,htl5 相较于 htl,在语义化方面得到显着增强,表单功能大幅强化,还提供了便利的本地存储功能。
统一资源定位符在前世使用百分号编码,这种编码会把非 ascii 字符或特殊意义字符转换为 “” 加上该字符 ascii 码值的十六进制形式,导致很多中文字符显示异常。
这次,秦奕决定让统一资源定位符采用涵盖所有地区语言字符的 unide 编码,确保所有字符都能正常显示,而非局限于英文字母。
当然,目前 unide 编码标准尚未问世,这同样也是一项需要推进的工作。国内当下使用的是 gb2312 编码,所以秦奕先在标准里用 gb2312 编码进行定义,同时预留了切换到 utf 编码的空间。
超文本传输协议方面,改进之处众多。其中最关键的一点是,http\/3 果断弃用 tcp 协议,转而采用基于 udp 协议的 ic 协议。
ic 协议相比 tcp 在众多方面都有着相当明显的优势:
在连接建立与恢复上,tcp 建立连接需进行三次握手,至少耗费一个 rtt 才能完成连接并开始传输数据;而 ic 首次连接可在 1-rtt 内完成密钥协商,后续连接能实现 0-rtt 恢复,无需等待服