Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么HTTP是基于文本的而不是某种压缩方法?为什么不是';t压缩?_Javascript_Http_Compression - Fatal编程技术网

Javascript 为什么HTTP是基于文本的而不是某种压缩方法?为什么不是';t压缩?

Javascript 为什么HTTP是基于文本的而不是某种压缩方法?为什么不是';t压缩?,javascript,http,compression,Javascript,Http,Compression,我从谷歌浏览器上嗅到了一些数据包,我发现: HTTP请求以文本形式发送-实际发送“GET Bla” JS作为文本接收 HTML\images等以某种压缩方法传输 我的问题是-为什么HTTP和JS传输时没有任何压缩? 我认为一个完整格式的HTTP请求可以压缩到大约3~5字节,不包括cookie,而且页面选择也会被压缩(例如site.com/thisisanicefile.html>site.com/ABC) 还有-为什么JS被转换为纯文本而不是令牌数组(编程语言在执行之前被转换为令牌数组-脚本语言


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

  • HTTP请求以文本形式发送-实际发送“GET Bla”
  • JS作为文本接收
  • HTML\images等以某种压缩方法传输
  • 我的问题是-为什么HTTP和JS传输时没有任何压缩?
    我认为一个完整格式的HTTP请求可以压缩到大约3~5字节,不包括cookie,而且页面选择也会被压缩(例如site.com/thisisanicefile.html>site.com/ABC)
    还有-为什么JS被转换为纯文本而不是令牌数组(编程语言在执行之前被转换为令牌数组-脚本语言也是如此)?
    谢谢-马克

    …过早优化是万恶之源

    (c)

    标题应始终为文本--只能压缩正文。 Js主体也可以gzip——见Web服务器设置

    …过早优化是万恶之源

    (c)

    标题应始终为文本--只能压缩正文。
    Js主体也可以被gzip压缩——见Web服务器设置。

    HTTP头从来没有被压缩过——只是没有用于HTTP头压缩的协议。我想没有必要,它不像标题是你100kB+网站的很大一部分

    对于单个HTTP请求,行为取决于服务器配置和客户端。如果客户端不表示愿意接受gzip/deflated内容,服务器将不会压缩。如果客户端确实这样说,那么服务器可能会根据其配置选择压缩。(例如,对于Apache,您需要这样设置
    mod_deflate

    例如,服务器不压缩JPEG和PNG是完全合理的,因为它们已经被压缩了。服务器也可能不选择压缩由PHP处理程序处理的任何内容,而是将其留给处理程序来压缩或不压缩。(例如,如果处理程序发送PDF,它可以压缩,但如果它发送MP3,它就不会压缩。)


    简短回答:这要看情况而定。

    HTTP头从来没有被压缩过——只是没有用于HTTP头压缩的协议。我想没有必要,它不像标题是你100kB+网站的很大一部分

    对于单个HTTP请求,行为取决于服务器配置和客户端。如果客户端不表示愿意接受gzip/deflated内容,服务器将不会压缩。如果客户端确实这样说,那么服务器可能会根据其配置选择压缩。(例如,对于Apache,您需要这样设置
    mod_deflate

    例如,服务器不压缩JPEG和PNG是完全合理的,因为它们已经被压缩了。服务器也可能不选择压缩由PHP处理程序处理的任何内容,而是将其留给处理程序来压缩或不压缩。(例如,如果处理程序发送PDF,它可以压缩,但如果它发送MP3,它就不会压缩。)

    简短回答:这要看情况而定。

    For:嗯,协议就是这样定义的。该协议是基于文本的。使其易于实现,而无需担心endianness之类的问题

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

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

    您还需要先编译JS代码,然后才能在Web服务器上使用它(另外一个构建/部署任务),或者动态编译它(CPU浪费),这不会阻止在不限制语言的情况下在浏览器上需要一个完整的源代码解释器(如果前端无法处理JS源代码,则无需在前端生成代码)。

    For:协议就是这样定义的。协议基于文本。实现起来很简单,无需担心端性之类的问题

    内容(html、javascript、图像等)可以压缩发送,这是一个浏览器和服务器之间编码“协商”的问题(两者都需要支持)。有关如何工作的详细信息,请参阅Wikipedia上的页面

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


    您还需要先编译JS代码,然后才能在Web服务器上使用它(另外一个构建/部署任务),或者动态编译它(CPU浪费),这不会阻止在不限制语言的情况下在浏览器上需要一个完整的源代码解释器(如果前端无法处理JS源代码,则不再在前端生成代码).

    你忘了提到你可以gzip javascript。这包括在http内容压缩中。我不认为javascript在这方面有什么特别之处-它可以像任何其他内容一样gzip。你忘了提到你可以gzip javascript。这包括在htt中