压缩发送浏览器Cookie的方法及系统与流程

文档序号:12377488阅读:607来源:国知局

本发明涉及浏览器技术领域,尤其是涉及一种压缩发送浏览器Cookie的方法及系统。



背景技术:

Cookie,有时也用其复数形式Cookies,即浏览器缓存,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用Cookie)。Cookie名称和值可以由服务器端开发自己定义,对于JSP而言也可以直接写入jsessionid,这样服务器可以知道该用户是否是合法用户以及是否需要重新登录等,服务器可以设置或读取Cookies中包含信息,借此维护用户跟服务器会话中的状态。

服务器可以利用Cookies包含信息的任意性来筛选并经常性维护这些信息,以判断在HTTP传输中的状态。Cookies最典型的应用是判定注册用户是否已经登录网站,用户可能会得到提示,是否在下一次进入此网站时保留用户信息以便简化登录手续,这些都是Cookies的功用。另一个重要应用场合是“购物车”之类处理。用户可能会在一段时间内在同一家网站的不同页面中选择不同的商品,这些信息都会写入Cookies,以便在最后付款时提取信息。

目前浏览器大量使用Cookie传输状态,是使用字符串传输,极大的浪费上行服务器带宽资源,影响在低速网络提交请求的速度。



技术实现要素:

本发明所要解决的技术问题是:提供一种压缩发送Cookie的方案,减少了服务器由于Cookie传输所占用的带宽,提高在低速网络提交请求的速度。

为了解决上述技术问题,本发明采用的技术方案为:提供一种压缩发送浏览器Cookie的方法,包括:

获取浏览器中的Cookie内容,并进行gzip压缩,转换成Blob对象准备发送;

备份上述Cookie到浏览器Javascript定义的变量中,并清空当前域名的Cookie;

Javascript发起请求,将所述Blob对象置于请求主体中,并发送到服务端;

通过Javascript将保存在变量中的Cookie还原到当前域名中。

服务端接收到所述请求,将请求主体中Blob对象解压为Cookie,与请求头组装,以还原请求。

为解决上述问题,本发明还提供一种压缩发送浏览器Cookie的系统,包括:

压缩发送转换模块,用于获取请求中的Cookie内容,并进行gzip压缩,转换成Blob对象准备发送;

备份清空模块,用于备份上述Cookie到浏览器Javascript定义的变量中,并清空当前域名的Cookie;

放置发送模块,用于Javascript发起请求,将所述Blob对象置于请求主体中,并发送到服务端;

还原备份模块,用于通过Javascript将保存在变量中的Cookie还原到当前域名中。

解压组装模块,用于服务端接收到所述请求,将请求主体中Blob对象解压为Cookie,与请求头组装,以还原请求。

本发明的有益效果在于:区别于现有技术,本发明通过将cookie压缩成blob格式,并在备份后,清空当前cookie,在发起请求时,将blob对象发送到服务端,在解压后,与请求头组装,以还原请求。通过上述方式,本发明可以在兼容现有浏览器的情况下,将Cookie压缩为二进制格式,减少了服务器由于Cookie传输所占用的带宽,提高在低速网络提交请求的速度。

附图说明

图1为本发明方法实施例一的流程示意图。

具体实施方式

为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。

本发明最关键的构思在于:将Cookie压缩成二进制,以放在请求主体中,在解析时,通过解压到请求头中,还原请求。

请参照图1,本发明实施例一提供一种压缩发送浏览器Cookie的方法,包括:

S1:获取请求中的Cookie内容,并进行gzip压缩,转换成Blob对象准备发送;

S2:备份上述Cookie到浏览器Javascript定义的变量中,并清空当前域名的Cookie;

S3:Javascript发起请求,将所述Blob对象置于请求主体中,并发送到服务端;

S4:通过Javascript将保存在变量中的Cookie还原到当前域名中;

S5:服务端接收到所述请求,将请求主体中Blob对象解压为Cookie,与请求头组装,以还原请求。

应当理解的是,在发起请求前Cookie是在浏览器中,一般是某个文件目录下的文本文件内。按照域名存储,比如www.baidu.com这个域名的cookie就存在www.baidu.com.txt的文件中。

区别于现有技术,本发明通过将cookie压缩成blob格式,并在备份后,勤工当前cookie,在发起请求时,将blob对象发送到服务端,在解压后,与请求头组装,以还原请求。通过上述方式,本发明可以在兼容现有浏览器的情况下,将Cookie压缩为二进制格式,减少了服务器由于Cookie传输所占用的带宽,提高在低速网络提交请求的速度。

其中,所述Blob对象为二进制数据。

Javascript发起请求时,将所述Blob对象置于请求主体中,并和请求头一并发送到服务端。因此此时发送到服务端是请求头与压缩后的请求主体。

对应地,本发明实施例二提供一种压缩发送浏览器Cookie的系统,包括:

压缩发送转换模块,用于获取请求中的Cookie内容,并进行gzip压缩,转换成Blob对象准备发送;

备份清空模块,用于备份上述Cookie到浏览器Javascript定义的变量中,并清空当前域名的Cookie;

放置发送模块,用于Javascript发起请求,将所述Blob对象置于请求主体中,并发送到服务端;

还原备份模块,用于通过Javascript将保存在变量中的Cookie还原到当前域名中。

解压组装模块,用于服务端接收到所述请求,将请求主体中Blob对象解压为Cookie,与请求头组装,以还原请求。

其中,所述Blob对象为二进制数据。

Javascript发起请求,将所述Blob对象置于请求主体中,并和请求头一并发送到服务端。

为方便理解,以下通过一个具体实施例进行说明。

例如:一个类似Web版QQ的功能的步骤如下:

1.登录操作时,将用户QQ账号信息以加密的方式存入当前域名的cookie中;

2.获取浏览器中的Cookie内容即加密后的QQ账号信息,并进行gzip压缩,转换成Blob对象准备发送;

3:备份上述Cookie即加密后的QQ账号信息到浏览器Javascript定义的变量中,并清空当前域名的Cookie;这样在还原之前用原先发送请求的方式就获取不到QQ账号信息了;

4:Javascript发起请求,将所述Blob对象置于请求主体中,并发送到服务端;其中http请求大致格式如下:

POST http://www.qq.com/xxx HTTP/1.1

Content-Length:58

Host:www.qq.com

Cookie:UserInfo=加密后的账号信息

请求主体经过本发明改进后,其格式如下:

POST http://www.qq.com/xxx HTTP/1.1

Content-Length:58

Host:www.qq.com

即:请求主体+Blob对象形式。

5:通过Javascript将保存在变量中的Cookie即加密后的QQ账号信息还原到当前域名中;

如果缺少上述步骤5,会导致存在Cookie中的QQ账号信息丢失,然后,进行其他请求时候,就获取不到QQ账号信息,无法识别是哪个用户了,相当于被退出登录。

6:服务端接收到所述请求,将请求主体中Blob对象解压为Cookie,与请求头组装,以还原请求。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1