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
Java 压缩Http头_Java_Http_Java Me_Header - Fatal编程技术网

Java 压缩Http头

Java 压缩Http头,java,http,java-me,header,Java,Http,Java Me,Header,我的实际数据是HTTP请求头大小的1/4(以字节为单位)。 有没有一种方法可以减少HTTP头的大小,或者其他任何相关的方法来处理这种情况? 我正在通过GPRS将数据从移动设备发送到服务器,我不想被庞大的请求数据包所累,这些数据包会占用我的$$和带宽。那么,是什么占据了你大部分的头呢?例如,堆栈溢出最近将大多数静态内容移动到了另一个域,这样so cookie就不会包含在静态内容的请求中(该请求无论如何都不会使用cookie) 但是,如果大多数标题都是浏览器始终发送的内容(用户代理等),那么您就无能

我的实际数据是HTTP请求头大小的1/4(以字节为单位)。
有没有一种方法可以减少HTTP头的大小,或者其他任何相关的方法来处理这种情况?

我正在通过GPRS将数据从移动设备发送到服务器,我不想被庞大的请求数据包所累,这些数据包会占用我的$$和带宽。

那么,是什么占据了你大部分的头呢?例如,堆栈溢出最近将大多数静态内容移动到了另一个域,这样so cookie就不会包含在静态内容的请求中(该请求无论如何都不会使用cookie)


但是,如果大多数标题都是浏览器始终发送的内容(用户代理等),那么您就无能为力了。

我从未需要通过删除标题来优化站点性能。尽管如此,大多数问题都与以下方面有关:

  • 大量不需要的GET请求。这通常是由于服务器没有将适当的过期和缓存头发送回客户端。有时它是一个写得很差的应用程序
  • 正在打开大量TCP连接。当您能够使连接保持活动状态并重新使用它来服务多个请求时,性能就会提高。我不确定移动客户端是否支持keep alive
  • 压缩的使用或缺乏。如果说有什么可以减少开支的话,那就是压缩的使用。但是,我不太确定移动客户端是否能够支持压缩。顺便说一句,通常对响应进行压缩,而不是对请求进行压缩(据我所知,所有浏览器都不会压缩请求,尽管HTTP规范允许)
  • 如果你在第3步之后还需要更好的性能,你的应用程序需要某种形式的性能设计评审。

    我认为页眉是“体系结构”,即:“它们的确切内容根据应用程序不同而不同。” 一旦您获得准确的当前列表,请使用,
    您可以看到您需要哪些,并避免发送其他

    谁知道这是否会产生重大影响,但至少你可以放心,你在这个话题上已经做到了最好


    嗯,这可能不受欢迎和/或实际上没有回答您的问题,但您对数据粒度有什么想法吗

    一旦您尽可能地减少了HTTP头,我怀疑您仍然需要进一步降低头/数据比率。显而易见的方法是在每个http请求中发送/接收多个数据项

    在客户端或服务器端添加一层逻辑(或对数据模型进行更改)将允许您请求更大的数据块,这取决于您在请求单个项目时可能需要哪些其他数据


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

    我在这里问了一个关于HTTP请求头大小的问题()。这让我震惊!我的数据肯定比当时提到的数字要低得多post@Kevin没有什么令人震惊的。tcpdump extract中的大多数请求头都是服务器所必需的,以决定如何准备响应。@Vinet,有什么办法解决这个问题吗?“还是头上的行李不可避免呢?”凯文,这是不可避免的。我还没看过你的应用程序。但是,从你问的那个问题开始,你应该考虑用小提琴来判断什么是错的。如果有太多的GET请求,我不会感到惊讶,在这种情况下,解决方案不是减少头大小,而是减少此类GET的数量,并删除任何不需要发送的信息。@Kevin,neXpert性能优化工具可以与Fiddler一起安装,以便快速报告错误。我称之为性能烟雾测试。您可以在neXpert blog@+1上找到更多详细信息,这是一个好问题,您可以在“我正在从移动设备发送数据”上扩展您描述的设置吗?听起来您正在使用一些定制的应用程序(也是因为java和j2me标记)?如果是这样的话,如果您确信您的服务器端应用程序将不需要它们,那么您可能可以去掉像Accept-*这样的请求头,甚至可以去掉Host。您可以使用用户代理发送一些版本信息,以防服务器在将来的版本中需要更多详细信息。响应头也可能受到限制。那么:客户端和服务器都在您的控制之下吗?HTTP规范对您有多重要?@KLE,“在您描述的设置中,”很抱歉,我不明白这句话?@Arjan:是的,客户端和服务器都在我的控制之下。HTTP规范,我认为不太重要,只要服务器和客户端通信工作良好。我没有考虑数据粒度感谢它把它吸引到我的注意。但这确实是一个很好的观点!