CN106302791A - 浏览器Cookie的传输方法及*** - Google Patents
浏览器Cookie的传输方法及*** Download PDFInfo
- Publication number
- CN106302791A CN106302791A CN201610770090.1A CN201610770090A CN106302791A CN 106302791 A CN106302791 A CN 106302791A CN 201610770090 A CN201610770090 A CN 201610770090A CN 106302791 A CN106302791 A CN 106302791A
- Authority
- CN
- China
- Prior art keywords
- request
- cookie
- service end
- browser
- blob object
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
- H04L67/5651—Reducing the amount or size of exchanged application data
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种压缩发送浏览器Cookie的方法及***,包括:获取请求中的Cookie内容,进行压缩发送,转换成Blob对象;备份Cookie到浏览器Javascript定义的变量中,清空当前域名的Cookie;Javascript发起请求,将Blob对象置于请求主体中,并发送到代理服务端;代理服务端接收到请求后,判断请求头中Cookie信息是否为空;若Cookie信息为空,则获取请求主体中的Blob对象;将Blob对象解压为Cookie,并将解压后的Cookie内容还原到请求头的对应位置;代理服务端将还原后的请求转发至服务端。能够最大限度的减少服务端的带宽占用。
Description
技术领域
本发明涉及浏览器技术领域,尤其是涉及一种浏览器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的传输方法,包括:
获取浏览器中的Cookie内容,并进行压缩,转换成Blob对象准备发送;
备份上述Cookie到浏览器Javascript定义的变量中,并清空当前域名的Cookie;
Javascript发起请求,将所述Blob对象置于请求主体中,并发送到代理服务端;
通过Javascript将保存在变量中的Cookie还原到当前域名中。
代理服务端接收到请求后,判断所述请求的请求头中Cookie信息是否为空;
若所述Cookie信息为空,则获取请求主体中的Blob对象;
将所述Blob对象解压为Cookie,并将解压后的Cookie内容还原到所述请求头的对应位置;
代理服务端将还原了所述Cookie内容的请求转发至服务端。
为解决上述问题,本发明还提供一种浏览器Cookie的传输***,包括:
压缩发送转换模块,用于获取请求中的Cookie内容,并进行压缩,转换成Blob对象准备发送;
备份清空模块,用于备份上述Cookie到浏览器Javascript定义的变量中,并清空当前域名的Cookie;
放置发送模块,用于Javascript发起请求,将所述Blob对象置于请求主体中,并发送到服务端;
还原备份模块,用于通过Javascript将保存在变量中的Cookie还原到当前域名中。
判断模块,用于代理服务端接收到请求后,判断所述请求的请求头中Cookie信息是否为空;
获取模块,用于若所述Cookie信息为空,则获取请求主体中的Blob对象;
解压组装模块,用于将所述Blob对象解压为Cookie,并将解压后的Cookie内容还原到所述请求头的对应位置;
转发模块,用于代理服务端将还原了所述Cookie内容的请求转发至服务端。
本发明的有益效果在于:区别于现有技术,本发明通过将Cookie压缩成Blob格式,并在备份后,清空当前Cookie;在发起请求时,将Blob对象发送到代理服务端,通过引入代理服务端,对接收到的请求解压后,与请求头组装,以还原请求,再将还原后的请求发送至原服务器,进一步避免了原服务器带宽资源的浪费;另外,由于本发明特有的压缩发送方式,代理服务端接收到请求后只需判断请求头中的Cookie信息是否为空即可知道接收到请求是否被压缩过,从而能够快速地选择正确的方式进行转发。通过上述方式,本发明可以在兼容现有浏览器的情况下,将Cookie压缩为二进制格式,减少了服务器由于Cookie传输所占用的带宽,提高在低速网络提交请求的速度。
附图说明
图1为本发明一实施例的浏览器Cookie的传输方法的流程示意图;
图2为本发明一实施例的浏览器Cookie的传输***的结构示意图;
图3为本发明实施例二的浏览器Cookie的传输***的结构示意图。
1、压缩转换模块;2、备份清空模块;3、放置发送模块;4、还原备份模块;5、判断模块;6、获取模块;7、解压组装模块;8、转发模块;9、处理模块。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
本发明最关键的构思在于:将Cookie进行压缩后发送至代理服务器,代理服务器对接收到的压缩请求进程解压处理后,将压缩的Cookie内容还原到请求头中,并将还原的请求转发至服务器。
请参照图1,本发明提供一种浏览器Cookie的传输方法,包括:
S1:获取请求中的Cookie内容,并进行压缩,转换成Blob对象准备发送;
S2:备份上述Cookie到浏览器Javascript定义的变量中,并清空当前域名的Cookie;
S3:Javascript发起请求,将所述Blob对象置于请求主体中,并发送到服务端;
S4:通过Javascript将保存在变量中的Cookie还原到当前域名中;
S5:代理服务端接收到请求后,判断所述请求的请求头中Cookie信息是否为空;
S6:若所述Cookie信息为空,则获取请求主体中的Blob对象;
S7:将所述Blob对象解压为Cookie,并将解压后的Cookie内容还原到所述请求头的对应位置;
S8:代理服务端将还原了所述Cookie内容的请求转发至服务端。
应当理解的是,在发起请求前Cookie是在浏览器中,一般是某个文件目录下的文本文件内。按照域名存储,比如www.***.com这个域名的cookie就存在www.***.com.txt的文件中。
进一步的,所述判断所述请求的请求头中Cookie信息是否为空,之后进一步包括:
若所述Cookie信息不为空,代理服务端将接收到的请求直接转发至服务端。
从上述描述可知,请求头中Cookie信息为空,说明该请求采用了Cookie压缩方式,需要对Cookie压缩内容进行解压;请求头中Cookie信息不为空,则说明该请求没有进行Cookie压缩,直接转发即可。
进一步的,服务端接收到由代理服务端转发的请求后,对所述请求进行处理。
从上述描述可知,本发明最终对请求进行响应的是原服务器,代理服务器的作用是对请求进行解压和转发。
进一步的,所述Blob对象为二进制数据。
Javascript发起请求时,将所述Blob对象置于请求主体中,并将所述请求主体和请求头一并发送到服务端。因此此时发送到服务端是请求头与压缩后的请求主体。
对应地,请参图2,本发明提供一种浏览器Cookie的传输***,包括:
压缩发送转换模1,用于获取请求中的Cookie内容,并进行压缩,转换成Blob对象准备发送;
备份清空模块2,用于备份上述Cookie到浏览器Javascript定义的变量中,并清空当前域名的Cookie;
放置发送模块3,用于Javascript发起请求,将所述Blob对象置于请求主体中,并发送到服务端;
还原备份模块4,用于通过Javascript将保存在变量中的Cookie还原到当前域名中。
判断模块5,用于代理服务端接收到请求后,判断所述请求的请求头中Cookie信息是否为空;
获取模块6,用于若所述Cookie信息为空,则获取请求主体中的Blob对象;
解压组装模块7,用于将所述Blob对象解压为Cookie,并将解压后的Cookie内容还原到所述请求头的对应位置;
转发模块8,用于代理服务端将还原了所述Cookie内容的请求转发至服务端。
进一步的,若所述Cookie信息不为空,所述转发模块用于代理服务端将接收到的请求直接转发至服务端。
从上述描述可知,请求头中Cookie信息为空,说明该请求采用了Cookie压缩方式,需要获取模块和解压组装模块对Cookie压缩内容进行解压后,转发模块再转发解压组装后的请求;请求头中Cookie信息不为空,则说明该请求没有进行Cookie压缩,转发模块直接转发即可。
进一步的,还包括处理模块9,用于服务端接收到由代理服务端转发的请求后,对所述请求进行处理。
进一步的,所述Blob对象为二进制数据。
Javascript发起请求,将所述Blob对象置于请求主体中,并将所述请求主体和请求头一并发送到服务端。
为方便理解,以下通过一个具体实施例一进行说明。
例如:一个类似Web版QQ的功能的步骤如下:
1.登录操作时,将用户QQ账号信息以加密的方式存入当前域名的cookie中;
2.获取浏览器中的Cookie内容即加密后的QQ账号信息,并进行gzip压缩,转换成Blob对象准备发送;
3:备份上述Cookie即加密后的QQ账号信息到浏览器Javascript定义的变量中,并清空当前域名的Cookie;这样在还原之前用原先发送请求的方式就获取不到QQ账号信息了;
4:Javascript发起请求,将所述Blob对象置于请求主体中,并将防止了该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:代理服务端接收到请求后,判断所述请求的请求头中Cookie信息是否为空;
7:若所述Cookie信息为空,则获取接收到的请求中请求主体中的Blob对象;若所述Cookie信息不为空,则直接将接收到的请求转发至服务端;
8:将所述Blob对象解压为Cookie,并将解压后的Cookie内容还原到所述请求头的对应位置;
9:代理服务端将请求主体+Cookie解压内容形式的请求转发至服务端;
10:服务端对接收的请求进行处理。
请参照图3,本发明的实施例二为:
一种浏览器Cookie的传输***,其特征在于,包括:
压缩转换模块1,用于获取请求中的Cookie内容,并进行gzip压缩,转换成Blob对象;所述Blob对象为二进制数据;
备份清空模块2,用于备份上述Cookie到浏览器Javascript定义的变量中,并清空当前域名的Cookie;
放置发送模块3,用于Javascript发起请求,将所述Blob对象置于请求主体中,并将所述请求主体和请求头一并发送到代理服务端;
还原备份模块4,用于通过Javascript将保存在变量中的Cookie还原到当前域名中。
判断模块5,用于代理服务端接收到请求后,判断所述请求的请求头中Cookie信息是否为空;
获取模块6,用于若所述Cookie信息为空,则获取请求主体中的Blob对象;
解压组装模块7,用于将所述Blob对象解压为Cookie,并将解压后的Cookie内容还原到所述请求头的对应位置;
转发模块8,用于代理服务端将还原了所述Cookie内容的请求转发至服务端;若所述Cookie信息不为空,所述转发模块用于代理服务端将接收到的请求直接转发至服务端。
处理模块9,用于服务端接收到由代理服务端转发的请求后,对所述请求进行处理。
综上所述,本发明的浏览器Cookie传输方法及***,客户端发送请求时先进行Cookie压缩,减少了服务器由于Cookie传输所占用的带宽,提高在低速网络提交请求的速度;并引入代理服务器,客户端将压缩后的请求发送至代理服务端,再由代理服务器解压还原后转发至原服务器,进一步减少了原服务器带宽资源的占用,能够确保低速网络情况下提交请求的速度。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种浏览器Cookie的传输方法,其特征在于,包括:
获取请求中的Cookie内容,并进行压缩,转换成Blob对象;
备份上述Cookie到浏览器Javascript定义的变量中,并清空当前域名的Cookie;
Javascript发起请求,将所述Blob对象置于请求主体中,并发送到代理服务端;
通过Javascript将保存在变量中的Cookie还原到当前域名中;
代理服务端接收到请求后,判断所述请求的请求头中Cookie信息是否为空;
若所述Cookie信息为空,则获取请求主体中的Blob对象;
将所述Blob对象解压为Cookie,并将解压后的Cookie内容还原到所述请求头的对应位置;
代理服务端将还原了所述Cookie内容的请求转发至服务端。
2.根据权利要求1所述的浏览器Cookie的传输方法,其特征在于,所述判断所述请求的请求头中Cookie信息是否为空,之后进一步包括:
若所述Cookie信息不为空,代理服务端将接收到的请求直接转发至服务端。
3.根据权利要求2所述的浏览器Cookie的传输方法,其特征在于,服务端接收到由代理服务端转发的请求后,对所述请求进行处理。
4.根据权利要求1所述的浏览器Cookie的传输方法,其特征在于,其中所述Blob对象为二进制数据。
5.根据权利要求1所述的浏览器Cookie的传输方法,其特征在于,Javascript发起请求,将所述Blob对象置于请求主体中,并将所述请求主体和请求头一并发送到服务端。
6.一种浏览器Cookie的传输***,其特征在于,包括:
压缩转换模块,用于获取请求中的Cookie内容,并进行压缩,转换成Blob对象;
备份清空模块,用于备份上述Cookie到浏览器Javascript定义的变量中,并清空当前域名的Cookie;
放置发送模块,用于Javascript发起请求,将所述Blob对象置于请求主体中,并发送到代理服务端;
还原备份模块,用于通过Javascript将保存在变量中的Cookie还原到当前域名中;
判断模块,用于代理服务端接收到请求后,判断所述请求的请求头中Cookie信息是否为空;
获取模块,用于若所述Cookie信息为空,则获取请求主体中的Blob对象;
解压组装模块,用于将所述Blob对象解压为Cookie,并将解压后的Cookie内容还原到所述请求头的对应位置;
转发模块,用于代理服务端将还原了所述Cookie内容的请求转发至服务端。
7.根据权利要求6所述的浏览器Cookie的传输***,其特征在于,若所述Cookie信息不为空,所述转发模块用于代理服务端将接收到的请求直接转发至服务端。
8.根据权利要求7所述的浏览器Cookie的传输***,其特征在于,还包括处理模块,用于服务端接收到由代理服务端转发的请求后,对所述请求进行处理。
9.根据权利要求6所述的浏览器Cookie的传输***,其特征在于,其中所述Blob对象为二进制数据。
10.根据权利要求6所述的浏览器Cookie的传输***,其特征在于,Javascript发起请求,将所述Blob对象置于请求主体中,并将所述请求主体和请求头一并发送到服务端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610770090.1A CN106302791B (zh) | 2016-08-30 | 2016-08-30 | 浏览器Cookie的传输方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610770090.1A CN106302791B (zh) | 2016-08-30 | 2016-08-30 | 浏览器Cookie的传输方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106302791A true CN106302791A (zh) | 2017-01-04 |
CN106302791B CN106302791B (zh) | 2019-08-13 |
Family
ID=57675781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610770090.1A Active CN106302791B (zh) | 2016-08-30 | 2016-08-30 | 浏览器Cookie的传输方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106302791B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102624918A (zh) * | 2012-03-30 | 2012-08-01 | 北京英富森信息技术有限公司 | 一种基于url重写技术的代理访问方法 |
CN102638581A (zh) * | 2012-03-31 | 2012-08-15 | 奇智软件(北京)有限公司 | 一种cookie 信息存储方法和*** |
CN105100084A (zh) * | 2015-07-07 | 2015-11-25 | 中国科学院计算技术研究所 | 一种防止跨站请求伪造攻击的方法及*** |
-
2016
- 2016-08-30 CN CN201610770090.1A patent/CN106302791B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102624918A (zh) * | 2012-03-30 | 2012-08-01 | 北京英富森信息技术有限公司 | 一种基于url重写技术的代理访问方法 |
CN102638581A (zh) * | 2012-03-31 | 2012-08-15 | 奇智软件(北京)有限公司 | 一种cookie 信息存储方法和*** |
CN105100084A (zh) * | 2015-07-07 | 2015-11-25 | 中国科学院计算技术研究所 | 一种防止跨站请求伪造攻击的方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN106302791B (zh) | 2019-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108476165B (zh) | 一种信息交互方法、客户端和装置 | |
CN102655481B (zh) | 一种基于网页的即时通信聊天内容查看方法及*** | |
CN103701714B (zh) | 页面提取方法、服务器及网络*** | |
CN108616606B (zh) | 一种物联网通信方法及装置 | |
CN103001860A (zh) | 一种融合通信Web即时消息实现*** | |
CN101674318A (zh) | 一种向移动设备定时推送数据的方法 | |
CN110769009B (zh) | 用户身份认证方法及*** | |
CN103297453A (zh) | 实现即时通讯的方法、浏览器端和*** | |
CN102143177A (zh) | 一种Portal认证方法、装置、设备及*** | |
CN102130844A (zh) | 获取Web聊天记录的方法及*** | |
CN103888348A (zh) | 电子邮件应用***和电子邮件传送方法、装置 | |
CN111427703A (zh) | 工业数据实时展示方法及*** | |
CN103220343B (zh) | 大数据多***转发方法 | |
US20090129378A1 (en) | Surreptitious web server bias towards desired browsers | |
CN103581151A (zh) | 对邮箱有效性进行在线验证的方法、***和客户端 | |
CN102752320A (zh) | 一种代理服务器主动压缩方法及代理服务器 | |
CN102739680A (zh) | 延长会话寿命装置和延长会话寿命方法 | |
CN102075592A (zh) | 一种筛选dns请求的方法 | |
CN105391615B (zh) | 一种基于业务需求的即时通信方法、装置及*** | |
CN103873443A (zh) | 信息处理方法、本地代理服务器和网络代理服务器 | |
CN105306577A (zh) | 基于app的手持设备间的资料共享***及方法 | |
CN106302791B (zh) | 浏览器Cookie的传输方法及*** | |
CN110324302B (zh) | 一种iot设备通信方法 | |
CN101227277B (zh) | 一种基于wap1.2网关实现端到端的安全的***及其方法 | |
CN106302792B (zh) | 压缩发送浏览器Cookie的方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |