我正在开发一个ajax long轮询类型的应用程序,我想尽量减少我正在使用的带宽量。现在最大的成本之一是客户端HTTP标头。一旦我建立了连接并在客户端上存储了会话ID,我真的不想浪费更多带宽传输冗余的http信息(例如浏览器类型,接受编码等)。在许多连接过程中,这很快就会增加大量数据!
我真的想只需要使用我的XMLHttpRequest并对所有标头进行核对,以便只将绝对最小值传输到服务器。有可能这样做吗?
答案 0 :(得分:3)
您几乎无法控制请求标头,但您仍然可以做一些事情 -
答案 1 :(得分:1)
您可以在发送请求之前使用setRequestHeader()
覆盖某些标准标头,但浏览器可能不允许覆盖某些标准标头,似乎没有获取标题列表的方法(除了要求服务器回复给你)以知道要尝试覆盖哪些标题。
答案 2 :(得分:0)
我认为至少在某些浏览器中删除所有标头是可能的。 看看gmail /日历应用程序与Chrome中谷歌后端之间的通信(在Firefox中不一样) 谷歌有可能为XMLHttpRequest对象提供一些隐藏的api, 你会看到类似下面的输出(注意没有请求标题部分):
Request URL:https://mail.google.com/mail/u/0/channel/bind?XXXXXXXXXXXXXX
Request Method:POST
Status Code:200 OK
Query String Parameters
OSID:XXXXXXXXXXXXX
OAID:XXXXXXXXX
VER:8
at:XXXXXXXXXXXXXX
it:30
SID:XXXXXXXXXXXX
RID:XXXXXXXXX
AID:XXXXXXXXXX
zx:XXXXXXXXXXXX
t:1
Request Payload
count=1&ofs=211&req0_type=cf&req0_focused=1&req0__sc=c
Response Headers
cache-control:no-cache, no-store, max-age=0, must-revalidate
content-encoding:gzip
content-type:text/plain; charset=utf-8
date:Tue, 09 Oct 2012 08:52:46 GMT
expires:Fri, 01 Jan 1990 00:00:00 GMT
pragma:no-cache
server:GSE
status:200 OK
version:HTTP/1.1
x-content-type-options:nosniff
x-xss-protection:1; mode=block