它发生了这样的情况,我的实际数据是HTTP请求头大小(以字节为单位)的1/4。
有没有办法减少HTTP标头的大小或任何其他相关的方式来处理这种情况?
我正在通过GPRS将数据从移动设备发送到服务器,并且不希望被大量请求数据包负担,这些请求数据包将吃掉我的$$和带宽。压缩Http头文件
回答
我从来没有通过切断标头来优化网站性能。也就是说,大多数的问题,曾与做:
- 不需要 GET请求数量庞大。这通常是由于服务器没有将适当的过期和缓存头发送回客户端。有时候这是一个写得不好的应用程序。
- 正在打开大量的TCP连接。如果能够保持连接处于活动状态并重新使用它以服务多个请求,性能会得到改善。我不确定移动客户端是否支持存活。
- 压缩的使用,或缺乏它。如果有什么可以减少费用的话,那就是压缩的用法。但是,我不确定移动客户端能够支持压缩。顺便说一句,通常会对响应进行压缩,而不是对请求进行压缩(我知道的所有浏览器都不会压缩请求,尽管HTTP规范允许)。
如果在#3之后仍然需要更好的性能,那么您的应用程序需要某种形式的性能设计评估。
那么,什么占据了大量的标题?例如,Stack Overflow最近将大部分静态内容移到了另一个域中,以便SO cookies不会包含在对静态内容的请求中(不管怎样都不会使用这些cookies)。
但是,如果大多数标题只是浏览器总是发送的东西(用户代理等),那么你可以做的事情并不多。
我在这里问过一个关于HTTP请求头大小的问题(http://stackoverflow.com/questions/1378476/http-get-request-packet-size-in-bytes/1378496#1378496) 。而这让我感到震惊! 我的数据肯定会低很多,在那个帖子提到的数字 – 2009-09-05 17:27:31
@凯文,那里没有什么令人震惊的。服务器需要该tcpdump抽取中的大部分请求标头来决定如何准备响应。 – 2009-09-05 18:05:12
@Vineet,有什么办法呢?或者是头顶行李不可避免。 – 2009-09-05 18:10:57
我认为这些标题为“架构”,即:“它们的确切内容因应用程序的不同而不同。
一旦有确切的当前列表,使用this post提供的链接,
你可以看到你需要哪些,避免发送等。
谁知道它是否会产生显着差异,但至少您可以放心,您已在该主题上做出了最大努力。
嗯,这可能证明不受欢迎和/或实际上不回答你的问题,但你有没有给你的数据粒度的任何想法?
一旦您尽可能减少了HTTP标头,我怀疑您仍然希望再降低标头/数据比率。这样做的最明显的方法是在每个http请求中发送/接收多个数据项。
在客户端或服务器端添加一层逻辑(或对数据模型的更改)可以允许您以更大的块请求数据,这是基于测量您请求时可能需要的其他数据一个单一的项目。
整个问题的关键是在每个请求中传输更多的数据以减少请求的数量。带宽(和客户端存储)的浪费 - 来自传输你实际上不需要的数据 - 最终可能比HTTP头部占用更容易接受。
上找到更多详细信息。我没有考虑将数据粒度引起我的注意。但确实是一个好点! – 2009-09-07 12:05:17
- 1. 如何压缩HTTP响应头文件?
- 2. 压缩HTTP响应头?
- 3. 缺少HTTP压缩文件
- 4. 如何启用HTTP压缩来压缩JSON文件
- 5. 通过Net :: HTTP下载压缩文件
- 6. 从服务器解压缩文件http
- 7. HTTP GET检索压缩文件
- 8. 恢复文件和HTTP压缩
- 9. 压缩标头
- 10. HTTP压缩 - 如何发送EAR文件中存在的预压缩文件?
- 11. 压缩文件
- 12. Libevent HTTP Server&压缩?
- 13. 压缩文件未解压
- 14. Node.js - 压缩/解压缩文件夹
- 15. Magick ++压缩和解压缩文件
- 16. 压缩未压缩的MSI文件
- 17. 与django_compressor压缩文件以gzip压缩
- 18. 在yii中压缩/解压缩文件
- 19. 压缩和解压缩文件夹
- 20. 如何压缩文件时不压缩
- 21. 压缩解压缩的exe文件
- 22. png文件的压缩和解压缩
- 23. IIS 7.5压缩会创建压缩文件,但会返回非压缩文件
- 24. .NET使用压缩和非压缩数据压缩文件
- 25. 压缩.htaccess文件
- 26. 压缩AVI文件
- 27. 压缩MDB文件
- 28. 解压缩文件
- 29. 压缩KML文件
- 30. 压缩Javascript文件
+1为好问题,在你描述的设置中 – KLE 2009-09-05 21:18:15
你可以扩展“我从移动设备发送数据”吗?这听起来像你正在使用一些自定义的应用程序(也因为* java *和* j2me *标签)?如果是这样的话,如果你确定你的服务器端应用程序不需要它们,你可能可以摆脱Accept- *和甚至Host等请求头。您可以使用User-Agent发送一些版本信息,以防您的服务器在将来的版本中需要更多的细节。响应标题也可能受到限制。所以:**是你的控制下的客户端和服务器?** HTTP规范对你来说有多重要? – Arjan 2009-09-05 21:39:53
@KLE,“在你描述的设置中” 对不起,我不明白这个说法? – 2009-09-05 22:05:01