2009-09-05 82 views
7

它发生了这样的情况,我的实际数据是HTTP请求头大小(以字节为单位)的1/4。
有没有办法减少HTTP标头的大小或任何其他相关的方式来处理这种情况?
我正在通过GPRS将数据从移动设备发送到服务器,并且不希望被大量请求数据包负担,这些请求数据包将吃掉我的$$和带宽。压缩Http头文件

+0

+1为好问题,在你描述的设置中 – KLE 2009-09-05 21:18:15

+1

你可以扩展“我从移动设备发送数据”吗?这听起来像你正在使用一些自定义的应用程序(也因为* java *和* j2me *标签)?如果是这样的话,如果你确定你的服务器端应用程序不需要它们,你可能可以摆脱Accept- *和甚至Host等请求头。您可以使用User-Agent发送一些版本信息,以防您的服务器在将来的版本中需要更多的细节。响应标题也可能受到限制。所以:**是你的控制下的客户端和服务器?** HTTP规范对你来说有多重要? – Arjan 2009-09-05 21:39:53

+0

@KLE,“在你描述的设置中” 对不起,我不明白这个说法? – 2009-09-05 22:05:01

回答

3

我从来没有通过切断标头来优化网站性能。也就是说,大多数的问题,曾与做:

  1. 不需要 GET请求数量庞大。这通常是由于服务器没有将适当的过期和缓存头发送回客户端。有时候这是一个写得不好的应用程序。
  2. 正在打开大量的TCP连接。如果能够保持连接处于活动状态并重新使用它以服务多个请求,性能会得到改善。我不确定移动客户端是否支持存活。
  3. 压缩的使用,或缺乏它。如果有什么可以减少费用的话,那就是压缩的用法。但是,我不确定移动客户端能够支持压缩。顺便说一句,通常会对响应进行压缩,而不是对请求进行压缩(我知道的所有浏览器都不会压缩请求,尽管HTTP规范允许)。

如果在#3之后仍然需要更好的性能,那么您的应用程序需要某种形式的性能设计评估。

5

那么,什么占据了大量的标题?例如,Stack Overflow最近将大部分静态内容移到了另一个域中,以便SO cookies不会包含在对静态内容的请求中(不管怎样都不会使用这些cookies)。

但是,如果大多数标题只是浏览器总是发送的东西(用户代理等),那么你可以做的事情并不多。

+0

我在这里问过一个关于HTTP请求头大小的问题(http://stackoverflow.com/questions/1378476/http-get-request-packet-size-in-bytes/1378496#1378496) 。而这让我感到震惊! 我的数据肯定会低很多,在那个帖子提到的数字 – 2009-09-05 17:27:31

+1

@凯文,那里没有什么令人震惊的。服务器需要该tcpdump抽取中的大部分请求标头来决定如何准备响应。 – 2009-09-05 18:05:12

+0

@Vineet,有什么办法呢?或者是头顶行李不可避免。 – 2009-09-05 18:10:57

2

我认为这些标题为“架构”,即:“它们的确切内容因应用程序的不同而不同。

一旦有确切的当前列表,使用this post提供的链接,
你可以看到你需要哪些,避免发送等。

谁知道它是否会产生显着差异,但至少您可以放心,您已在该主题上做出了最大努力。

2

嗯,这可能证明不受欢迎和/或实际上不回答你的问题,但你有没有给你的数据粒度的任何想法?

一旦您尽可能减少了HTTP标头,我怀疑您仍然希望再降低标头/数据比率。这样做的最明显的方法是在每个http请求中发送/接收多个数据项。

在客户端或服务器端添加一层逻辑(或对数据模型的更改)可以允许您以更大的块请求数据,这是基于测量您请求时可能需要的其他数据一个单一的项目。

整个问题的关键是在每个请求中传输更多的数据以减少请求的数量。带宽(和客户端存储)的浪费 - 来自传输你实际上不需要的数据 - 最终可能比HTTP头部占用更容易接受。

+1

上找到更多详细信息。我没有考虑将数据粒度引起我的注意。但确实是一个好点! – 2009-09-07 12:05:17