gpt4 book ai didi

javascript - 为什么 HTTP 是基于文本的而不是某种压缩方法?为什么 JS 没有被压缩?

转载 作者:可可西里 更新时间:2023-11-01 16:47:31 26 4
gpt4 key购买 nike


我从我的 Google Chrome 浏览器中嗅探了一些数据包 - 我发现:

  1. HTTP 请求以文本形式发送 - 实际上发送“GET BLABLABLA”
  2. JS 以文本形式接收
  3. HTML\图片等以某种压缩方式传输。

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

最佳答案

对于 HTTP : 好吧,这就是协议(protocol)的定义方式。该协议(protocol)是基于文本的。使其易于实现,而不必担心字节序等问题。

内容(html、javascript、图像...)可以压缩发送,这是浏览器和服务器(都需要支持)之间的编码“协商”问题。查看HTTP Compression维基百科上的页面,了解其工作原理。

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

您还需要先编译 JS 代码,然后才能在您的网络服务器上使用它(又一个构建/部署任务),或者即时编译它(CPU 浪费),这不会阻止对浏览器上成熟的源代码解释器,不受语言限制(如果无法处理 JS 源,则前端不再有 eval/代码生成)。

关于javascript - 为什么 HTTP 是基于文本的而不是某种压缩方法?为什么 JS 没有被压缩?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6801225/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com