为什么HTTP是基于文本的而不是一些压缩方法?为什么不压缩JS?

Mar*_*gal 1 javascript compression http


我从谷歌Chrome浏览器上嗅了一些数据包 - 我发现:

  1. HTTP请求以文本形式发送 - 实际发送'GET BLABLABLA'
  2. JS作为文本收到
  3. HTML\images等以一些压缩方法传输.

我的问题是 - 为什么在没有任何压缩的情况下传输HTTP和JS?
我认为完全形式的HTTP请求可以压缩到大约3~5个字节,不包括cookie,并且页面选择也被压缩(例如site.com/thisisanicefile.html> site.com/ABC)
另外 - 为什么JS转移作为纯文本而不是令牌数组(编程语言在执行前转换为令牌数组 - 脚本语言也是如此)?
谢谢 - 马克

Mat*_*Mat 10

对于HTTP:嗯,这就是协议的定义方式.该协议是基于文本的.实现简单,无需担心字节序等问题.

内容(html,javascript,images,...)可以压缩发送,这是在浏览器和服务器之间编码"协商"的问题(两者都需要支持它).请参阅Wikipedia上的HTTP Compression页面,了解其工作原理.

以预处理的形式(某种字节码)传输JavaScript将要求在所有浏览器中标准化并实现字节码形式,并且将提供非常小的好处.与压缩的,缩小的JavaScript相比,大小差异可能不会很明显(毕竟,您将发送相同数量的信息,因此一个好的压缩算法应该使两者的大小几乎完全相同).

您还需要先编译JS代码,然后再在Web服务器上使用它(一个更多的构建/部署任务),或者即时编译它(CPU浪费),这不会妨碍完整的需求 - 在浏览器上吹制源代码解释器而不限制语言(eval如果它不能处理JS源,则不再在前端生成代码).

  • 这包含在http内容压缩中.我不认为javascript是特殊的 - 它可以像任何其他内容一样gzip. (3认同)