CN102447714A - Cookie管理方法 - Google Patents
Cookie管理方法 Download PDFInfo
- Publication number
- CN102447714A CN102447714A CN2010102990351A CN201010299035A CN102447714A CN 102447714 A CN102447714 A CN 102447714A CN 2010102990351 A CN2010102990351 A CN 2010102990351A CN 201010299035 A CN201010299035 A CN 201010299035A CN 102447714 A CN102447714 A CN 102447714A
- Authority
- CN
- China
- Prior art keywords
- cookie
- file
- socket
- http request
- service end
- 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.)
- Pending
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
一种应用在Android平台终端中的Cookie保存方法,该方法包括:新建一HTTP请求头,所述HTTP请求头包括一服务端的主机地址;新建一套接字,并将所述HTTP请求头发送给所述套接字;所述套接字向所述服务端发送HTTP请求;所述套接字接收来自所述服务端的HTTP响应;解析HTTP响应头,找出Cookie部分;及将Cookie写入到一本地存储单元中的Cookie文件夹中。本发明还揭示了一种应用在Android平台终端中的Cookie读取方法。根据本发明的技术方案,使得非浏览器的应用程序对Cookie的访存更高效,系统开销更小。
Description
技术领域
本发明涉及数据处理技术领域,特别是涉及一种应用在Android平台终端中的Cookie管理方法。
背景技术
超文本传输协议(HTTP:Hyper Text Transfer Protocol)是一个“无状态”的连接协议,所谓“无状态”是指服务端在向客户端发送被请求的文件时,并不存储任何关于该客户端的状态信息,这样即使是同一客户端向同一服务端发起请求,服务端也无法辨识客户端。这种超文本传输协议的无状态性,随着互联网的快速发展,已无法满足需求。比如电子商务网站上的购物车,用户在多个页面选购商品,如果没有“状态”,用户在前一页面选中的商品信息在下一个页面便会丢失。为了支持客户端与服务端之间的交互,发展出了两种交互状态存储技术,一种是通过客户端保持状态的Cookie机制,另一种是通过服务端保持状态的Session机制。
用户访问一个支持Cookie的网站,服务端向客户端回传超文本时会附带一些特殊信息,比如账户特征码等服务端希望下次再与客户端发生连接时记忆的信息,这些特殊信息就被称为Cookie,当然这些特殊信息并不是存放于HTTP响应体(Response body)中,而是存放于HTTP响应头(Response header)中;当客户端接收到来自服务端的响应后,将这些特殊信息存放到本地一个统一的位置,自此,当客户端再向服务端发送请求(Request)的时候,都会把相应的Cookie一并发送回服务端,而这次,Cookie信息则是存放于HTTP请求头(Request header)中。
在Android平台中,浏览器也可以对Cookie进行管理,而非浏览器的应用程序,要对Cookie进行访存,一般都是通过使用Android提供的一系列组件来实现,包括HTTP Connection类、Cookie Handler类、Cookie Manager类等,通过这样的方法虽然可以对Cookie进行访存,但是对系统的花销却是很大,因为上述几个类都包含了数量众多的成员变量和方法,而其中大部分并未在访存Cookie的过程中起作用,因此,传统的方法使得系统资源被浪费。
发明内容
鉴于以上内容,有必要提供一种应用在Android平台终端中的轻量级Cookie管理方法,使得对Cookie的访存更高效,系统开销更小。
在Android应用程序开发中,使用集成级别高、功能完整的组件可以让开发者用较少的时间完成特定功能的设计,但同时也会带来应用程序体积臃肿、运行时系统花销大的缺点。本发明使用集成级别低、体积小而灵活的套接字(Socket)来实现对Cookie的访存应用。套接字用于描述IP地址和端口,是一个通信链的句柄,应用程序可以通过套接字向网络发出请求或者应答网络请求。
根据本发明,提供一种Cookie保存方法,该方法应用在一Android平台终端中,包括以下步骤:
新建一HTTP请求头,所述HTTP请求头包括一服务端的主机地址;
新建一套接字,并将所述HTTP请求头发送给所述套接字;
所述套接字连接到所述服务端,向所述服务端发送HTTP请求;
所述套接字接收来自所述服务端的HTTP响应;
解析HTTP响应头,找出Cookie部分;及
将Cookie写入到一本地存储单元中的Cookie文件夹中。
根据本发明,提供一种Cookie读取方法,该方法应用在一Android平台终端中,包括以下步骤:
新建一HTTP请求头,所述HTTP请求头包括指向一服务端的URI;
解析所述URI,获取该URI中的域和路径;
从一本地存储单元中的Cookie文件夹中获取匹配该URI的域和路径的Cookie;
读取该Cookie的过期日期;
判断该Cookie的过期日期是否晚于系统当前日期,若结果为是,则读取该Cookie的名称和值,将该Cookie的名称和值写入所述HTTP请求头,若结果为否,则将该Cookie从所述本地存储单元中的Cookie文件夹中删除;
新建一套接字,并将所述HTTP请求头发送给所述套接字;
所述套接字连接到所述服务端,向所述服务端发送所述HTTP请求。
与现有技术相比,上述应用在Android平台终端中的Cookie管理方法,由于使用能够集成级别低、体积小而灵活的套接字(Socket)来实现对Cookie的访存应用,使得对Cookie的访存更高效,系统开销更小。
附图说明
图1为本发明一种实施方式中的Cookie管理方法的应用架构图。
图2为本发明一种实施方式中的Cookie保存方法的流程图。
图3为本发明一种实施方式中的将Cookie写入到一本地存储单元中的Cookie文件夹中的方法的流程图。
图4为本发明一种实施方式中的Cookie读取方法的流程图。
主要元件符号说明
客户端 | 10 |
服务端 | 20 |
套接字 | 102 |
具体实施方式
请参阅图1,示意性的示出了根据本发明一种实施方式的Cookie管理方法的应用架构图。一客户端10使用一套接字102与网络上的一服务端20建立连接,在交互过程中,所述客户端10将交互状态存储到本地的Cookie中。所述客户端10为一运行于Android平台上的应用程序,比如一需要连接互联网的股票交易客户端,所述服务端20为一支持Cookie的网络服务器,比如一股票交易服务器,所述套接字102为Android平台的一通信链句柄,用于向网络发出请求或者应答网络请求。
在Android平台的开发框架中,调用套接字的API有多种方法,可以直接引用Java.Net.Socket类库,此类库位于Java.Net类库包中,也可以通过Java本地接口(JNI:Java Native Interface)调用其他语言编写的Socket类库,比如C语言编写的Socket类库(Socket.h)。在本实施方式中,使用C语言编写的Socket类库来实现对Socket的调用,因为用纯C语言编写的类库具有体积小、更具弹性的优点。
请参阅图2,示意性的示出了根据本发明一种实施方式的Cookie保存方法的流程图。所述Cookie保存方法应用在包括一Android平台终端中,包括以下步骤:
在步骤S10中,新建一HTTP请求头,所述HTTP请求头包括一服务端的主机地址。所述HTTP请求头还包括HTTP客户端的类型、HTTP客户端可接收内容的类型等其他信息。
在步骤S12中,新建一套接字,并将所述HTTP请求头发送给所述套接字。
在步骤S14中,所述套接字连接到所述服务端,向所述服务端发送HTTP请求。所述套接字根据所述HTTP请求头中的所述服务端的主机地址,连接到所述服务端,并将把包含所述HTTP请求头的HTTP请求发送给所述服务端。
在步骤S16中,所述套接字接收来自所述服务端的HTTP响应。所述服务端在接收所述HTTP请求后,向所述套接字返回一HTTP响应,所述HTTP响应包括了一HTTP响应头。
在步骤S18中,解析所述HTTP响应头,找出Cookie部分。所述HTTP响应头为流式文本,若所述服务端支持Cookie,则从所述服务端返回的HTTP响应头可能包括Cookie信息。一般的,Cookie信息位于HTTP响应头中“Set-Cookie”段。
在步骤S20中,将Cookie写入到一本地存储单元中的Cookie文件夹中。在本实施方式中,所述本地存储单元为内存盘(Ramdisk)。内存盘是Android平台提供的一种高速存储解决方案,是将内存(Ram)的一个区域虚拟为磁盘供用户或应用程序使用,具有读写速度快、断电后内容丢失的特点。为了使用户在使用一应用程序连接到网络上的服务端获取相关服务时具有极快的速度体验,对Cookie的访存也应当有极快的速度要求。但是,由于内存盘断电后其中的资料会丢失,因此当结束对HTTP的使用之后,将内存盘中的Cookie文件夹压缩为一压缩档,存放到一非易失性存储单元中。所述非易失性存储单元可以是Android平台终端中的ROM,也可以是存储卡。
请参阅图3,示意性的示出了根据本发明一种实施方式的将Cookie写入到一本地存储单元中的Cookie文件夹中的方法的流程图,包括以下步骤:
在步骤S201中,获取Cookie信息,所述Cookie信息包括Cookie的名称、值、域、路径和过期日期。
在步骤S202中,从所述Cookie文件夹中删除在“/Cookie域/Cookie路径/”文件夹中的以“Cookie名称”为文件名的Cookie文件。
在步骤S203中,判断Cookie的过期日期是否晚于系统当前日期,若结果为是,则进入步骤S604,若结果为否,则结束本方法流程。Cookie的一个重要特性便是安全性,因此服务端向客户端返回的Cookie带有一个过期日期,旨在超过一定时间之后,使得Cookie失效,避免泄漏用户的个人隐私以及避免给用户带来安全隐患。
在步骤S204中,所述Cookie文件夹中的“/Cookie域/Cookie路径/”文件夹中新建一以“Cookie名称”为文件名的Cookie文件。
在步骤S205中,将所述Cookie的值写入所述Cookie文件的第一行。
在步骤S206中,将所述Cookie的过期日期写入所述Cookie文件的第二行。
请参阅图4,示意性的示出了根据本发明一种实施方式的Cookie读取方法的流程图,包括以下步骤:
在步骤S30中,新建一HTTP请求头,所述HTTP请求头包括指向一服务端的URI。
在步骤S32中,解析所述URI,获取该URI中的域和路径。Web上可用的每种资源,比如HTML文档、图像、视频片段、程序等,均由一个URI(Uniform Resource Identifier,统一资源标志符)进行定位。例如一个URI:“http://www.myspace.com/zh/cn/index.aspx”,域为“www.myspace.com”,路径为“/zh/cn/”。
在步骤S34中,将Cookie文件夹从存放在一非易失性存储单元的一压缩档解压到一本地存储单元中。在本实施方式中,所述本地存储单元为内存盘(Ramdisk)。
在步骤S36中,从所述本地存储单元中的Cookie文件夹中获取匹配该URI的域和路径的Cookie。所述Cookie文件夹中的“/URI域/URI路径/”文件夹中的Cookie为匹配该URI的域和路径的Cookie。
在步骤S38中,读取该Cookie的过期日期。
在步骤S40中,判断该Cookie的过期日期是否晚于系统当前日期,若结果为是,则进入步骤S44,若结果为否,则进入步骤S42。
在步骤S42中,将该Cookie从所述本地存储单元中的Cookie文件夹中删除,进入步骤S46。
在步骤S44中,读取该Cookie的名称和值,将该Cookie的名称和值写入所述HTTP请求头。若在步骤S36中有多个匹配该URI的域和路径的Cookie,则对每一个匹配该URI的域和路径的Cookie执行上诉步骤S38~步骤S44。
在步骤S46中,新建一套接字,并将所述HTTP请求头发送给所述套接字。
在步骤S48中,所述套接字连接到所述服务端,向所述服务端发送所述HTTP请求。
对本领域的技术人员来说,可以根据本发明的发明方案和发明构思结合生产的实际需要做出其他相应的改变或调整,而这些改变和调整都应属于本发明权利要求的保护范围。
Claims (10)
1.一种Cookie保存方法,应用在一Android平台终端中,其特征在于:所述方法包括以下步骤:
新建一HTTP请求头,所述HTTP请求头包括一服务端的主机地址;
新建一套接字,并将所述HTTP请求头发送给所述套接字;
所述套接字连接到所述服务端,向所述服务端发送HTTP请求;
所述套接字接收来自所述服务端的HTTP响应;
解析HTTP响应头,找出Cookie部分;及
将Cookie写入到一本地存储单元中的Cookie文件夹中。
2.如权利要求1所述的Cookie保存方法,其特征在于:将Cookie写入到一本地存储单元的步骤还包括以下步骤:
获取Cookie信息,所述Cookie信息包括Cookie的名称、值、域、路径和过期日期;
从所述Cookie文件夹中删除在“/Cookie域/Cookie路径/”文件夹中的以“Cookie名称”为文件名的Cookie文件;
判断Cookie的过期日期是否晚于系统当前日期,若结果为是,则在所述Cookie文件夹中的“/Cookie域/Cookie路径/”文件夹中新建一以“Cookie名称”为文件名的Cookie文件;及
将所述Cookie信息写入所述Cookie文件。
3.如权利要求2所述的Cookie保存方法,其特征在于:将所述Cookie信息写入所述Cookie文件的步骤还包括以下步骤:
将Cookie的值写入所述Cookie文件的第一行;
将Cookie的过期日期写入所述Cookie文件的第二行。
4.如权利要求1或2所述的Cookie保存方法,其特征在于:所述本地存储单元为内存盘。
5.如权利要求4所述的Cookie保存方法,其特征在于:当结束对HTTP的使用之后,将内存盘中的Cookie文件夹压缩为一压缩档,存放到一非易失性存储单元中。
6.如权利要求5所述的Cookie保存方法,其特征在于:将内存盘中的Cookie文件夹压缩存放到一非易失性存储单元的步骤之前还包括以下步骤:
检查在内存盘中的Cookie文件夹中的所有的Cookie的过期日期,若Cookie的过期日期晚于系统当前日期,则将该Cookie从内存盘中的Cookie文件夹中删除。
7.一种Cookie读取方法,应用在一Android平台终端中,其特征在于:所述方法包括以下步骤:
新建一HTTP请求头,所述HTTP请求头包括指向一服务端的URI;
解析所述URI,获取该URI中的域和路径;
从一本地存储单元中的Cookie文件夹中获取匹配该URI的域和路径的Cookie;
读取该Cookie的过期日期;
判断该Cookie的过期日期是否晚于系统当前日期,若结果为是,则读取该Cookie的名称和值,将该Cookie的名称和值写入所述HTTP请求头,若结果为否,则将该Cookie从所述本地存储单元中的Cookie文件夹中删除;
新建一套接字,并将所述HTTP请求头发送给所述套接字;及
所述套接字连接到所述服务端,向所述服务端发送所述HTTP请求。
8.如权利要求7所述的Cookie读取方法,其特征在于:从所述本地存储单元中的Cookie文件夹中获取匹配该URI的域和路径的Cookie的步骤之前还包括以下步骤:
将Cookie文件夹从存放在一非易失性存储单元的一压缩档解压到所述本地存储单元中。
9.如权利要求7或8所述的Cookie读取方法,其特征在于:所述本地存储单元为内存盘。
10.如权利要求7所述的Cookie读取方法,其特征在于:所述Cookie文件夹中的“/URI域/URI路径/”文件夹中的Cookie为匹配该URI的域和路径的Cookie。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102990351A CN102447714A (zh) | 2010-10-07 | 2010-10-07 | Cookie管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102990351A CN102447714A (zh) | 2010-10-07 | 2010-10-07 | Cookie管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102447714A true CN102447714A (zh) | 2012-05-09 |
Family
ID=46009803
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010102990351A Pending CN102447714A (zh) | 2010-10-07 | 2010-10-07 | Cookie管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102447714A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104683419A (zh) * | 2013-12-03 | 2015-06-03 | 航天信息股份有限公司 | 一种基于android系统和m2m的通信方法和系统 |
CN106302792A (zh) * | 2016-08-30 | 2017-01-04 | 福建天晴数码有限公司 | 压缩发送浏览器Cookie的方法及系统 |
CN106878460A (zh) * | 2017-03-24 | 2017-06-20 | 腾讯科技(深圳)有限公司 | 通信处理方法及装置 |
CN107092697A (zh) * | 2017-04-27 | 2017-08-25 | 努比亚技术有限公司 | 网页cookie的获取方法及装置 |
CN112788073A (zh) * | 2019-11-06 | 2021-05-11 | 广州凡科互联网科技股份有限公司 | 一种新型非浏览器端使用Cookie处理方法 |
CN112800303A (zh) * | 2019-11-13 | 2021-05-14 | 马上消费金融股份有限公司 | 一种浏览器数据的存储、读取方法及相关装置 |
CN113824777A (zh) * | 2021-09-06 | 2021-12-21 | 武汉中科通达高新技术股份有限公司 | 数据管理方法和数据管理装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1020804A2 (en) * | 1999-01-13 | 2000-07-19 | Pitney Bowes Inc. | A system for managing user-characterizing network protocol headers |
US20020143861A1 (en) * | 2001-04-02 | 2002-10-03 | International Business Machines Corporation | Method and apparatus for managing state information in a network data processing system |
CN101009561A (zh) * | 2006-01-25 | 2007-08-01 | 精工爱普生株式会社 | Imx会话控制和认证 |
-
2010
- 2010-10-07 CN CN2010102990351A patent/CN102447714A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1020804A2 (en) * | 1999-01-13 | 2000-07-19 | Pitney Bowes Inc. | A system for managing user-characterizing network protocol headers |
US20020143861A1 (en) * | 2001-04-02 | 2002-10-03 | International Business Machines Corporation | Method and apparatus for managing state information in a network data processing system |
CN101009561A (zh) * | 2006-01-25 | 2007-08-01 | 精工爱普生株式会社 | Imx会话控制和认证 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104683419A (zh) * | 2013-12-03 | 2015-06-03 | 航天信息股份有限公司 | 一种基于android系统和m2m的通信方法和系统 |
CN104683419B (zh) * | 2013-12-03 | 2019-08-27 | 航天信息股份有限公司 | 一种基于android系统和m2m的通信方法和系统 |
CN106302792A (zh) * | 2016-08-30 | 2017-01-04 | 福建天晴数码有限公司 | 压缩发送浏览器Cookie的方法及系统 |
CN106302792B (zh) * | 2016-08-30 | 2019-07-09 | 福建天晴数码有限公司 | 压缩发送浏览器Cookie的方法及系统 |
CN106878460A (zh) * | 2017-03-24 | 2017-06-20 | 腾讯科技(深圳)有限公司 | 通信处理方法及装置 |
CN107092697A (zh) * | 2017-04-27 | 2017-08-25 | 努比亚技术有限公司 | 网页cookie的获取方法及装置 |
CN112788073A (zh) * | 2019-11-06 | 2021-05-11 | 广州凡科互联网科技股份有限公司 | 一种新型非浏览器端使用Cookie处理方法 |
CN112800303A (zh) * | 2019-11-13 | 2021-05-14 | 马上消费金融股份有限公司 | 一种浏览器数据的存储、读取方法及相关装置 |
CN112800303B (zh) * | 2019-11-13 | 2023-05-05 | 马上消费金融股份有限公司 | 一种浏览器数据的存储、读取方法及相关装置 |
CN113824777A (zh) * | 2021-09-06 | 2021-12-21 | 武汉中科通达高新技术股份有限公司 | 数据管理方法和数据管理装置 |
CN113824777B (zh) * | 2021-09-06 | 2023-12-19 | 武汉中科通达高新技术股份有限公司 | 数据管理方法和数据管理装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6547024B2 (ja) | 動的電話番号割り当て | |
CN102447714A (zh) | Cookie管理方法 | |
CN106933871A (zh) | 短链接处理方法、装置及短链接服务器 | |
KR20130126930A (ko) | 텍스트 메시지를 사용하는 스프레드시트와의 상호작용 | |
US9497260B2 (en) | Communication between two web applications | |
CN102073672A (zh) | Web服务器、Web浏览器和Web系统 | |
CN110750222A (zh) | 打印方法、装置、计算机设备和存储介质 | |
US20130159379A1 (en) | App system platform | |
US10430732B2 (en) | Project management task updater | |
CN109492856B (zh) | 业务请求处理方法、装置、计算机设备以及存储介质 | |
CN101799821A (zh) | 一种通过微件实现网页应用的方法及系统 | |
CN111756847B (zh) | 网站支持https协议的方法和装置 | |
US20230205826A1 (en) | Systems and Method for Domain Mapping | |
CN102135895A (zh) | 系统升级方法及系统 | |
CN109495553A (zh) | 一种网页显示控制方法、系统及反向代理服务器 | |
CN113179301A (zh) | 文件的下载方法和装置、存储介质、电子装置 | |
CN102404242A (zh) | 一种用户信息更新装置、电子设备及用户信息更新方法 | |
CN109726240A (zh) | 实时业务轨迹跟踪方法和实时业务轨迹处理方法 | |
CN101296201B (zh) | 网络信息共享方法、系统及即时通信装置 | |
CN102868982B (zh) | 面向移动终端的信息转发和企业获取交互信息的方法 | |
CN111200650B (zh) | 数据传输方法、装置、系统、设备及介质 | |
CN101770511A (zh) | 一种用于移动通讯设备终端加快回退操作的浏览系统及其应用方法 | |
CN111273964B (zh) | 一种数据加载方法及装置 | |
CN108960801A (zh) | 基于区块链技术的交易记录管理方法、系统及存储介质 | |
TW201216657A (en) | Method for Managing 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 | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120509 |