android 客户端 Cookie处理

Cookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。

Cookie最早是网景公司的前雇员Lou Montulli在1993年3月的发明。

发起

Cookie是由服务器端生成,发送给User-Agent(一般是浏览器,客户端),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie)。Cookie名称和值可以由服务器端开发自己定义,对于JSP而言也可以直接写入jsessionid,这样服务器可以知道该用户是否合法用户以及是否需要重新登录等。

用途

服务器可以利用Cookies包含信息的任意性来筛选并经常性维护这些信息,以判断在HTTP传输中的状态。Cookies最典型的应用是判定注册用户是否已经登录网站,用户可能会得到提示,是否在下一次进入此网站时保留用户信息以便简化登录手续,这些都是Cookies的功用。另一个重要应用场合是“购物车”之类处理。用户可能会在一段时间内在同一家网站的不同页面中选择不同的商品,这些信息都会写入Cookies,以便在最后付款时提取信息。目前Cookies 最广泛的是记录用户登录信息,这样下次访问时可以不需要输入自己的用户名、密码了——当然这种方便也存在用户信息泄密的问题,尤其在多个用户共用一台电脑时很容易出现这样的问题。

生存周期

Cookie可以保持登录信息到用户下次与服务器的会话,换句话说,下次访问同一网站时,用户会发现不必输入用户名和密码就已经登录了(当然,不排除用户手工删除Cookie)。而还有一些Cookie在用户退出会话的时候就被删除了,这样可以有效保护个人隐私。
Cookie在生成时就会被指定一个Expire值,这就是Cookie的生存周期,在这个周期内Cookie有效,超出周期Cookie就会被清除。有些页面将Cookie的生存周期设置为“0”或负值,这样在关闭浏览器时,就马上清除Cookie,不会记录用户信息,更加安全。

Android 中Cookie 的操作:
逻辑:Cookie是由服务器生成的。客户端第一次向服务器发送Http请求时,由于没有Cookie,在Http请求头中即Header中不包含"Cookie"。此时在服务器返回的相应(HttpResponse)中会多一个字段"Set-Cookie",此字段的值就是服务器生成的Cookie值,下次再由此客户端程序访问该服务器时,就可以把该Cookie值放入Http请求头中。服务器就会知道是哪个用户再次访问了该服务器。客户端需要保存该Cookie以此用户再次访问服务器时使用。Cookie会有一个失效时间,客户端在Cookie失效后再次访问服务器,服务器会返回一个Cookie失效的状态码(比如403之类的),并在HttpResponse中包含"Set-Cookie"字段,这里面是新的Cookie。客户端需要做的操作是:1.将新Cookie覆盖旧的Cookie。2.跳入用户登录界面,让用户用新的Cookie重新登陆。Cookie 可以保存在SharePreferenced或者Sqlite中。
实现代码:
public byte[] doPost(String url, List<NameValuePair> values){
HttpPost post = new HttpPost(url);
post.setHeadr("Accept", "");
...
}

Android中的cookie介绍相关推荐

  1. android中的长度单位介绍(dp,sp,px,in,pt,mm)

    作为小白学习了一段时间的android,在学习过程中却一直有个疑问,在设置控件大小时面对这几个单位却不知如何选择,查找相关资料后了解了其含义,今天来分享下 dp或dip(device independ ...

  2. Android中级控件介绍(五)

    一.相对布局RelativeLayout RelativeLayout的下级视图的位置是相对位置,得有具体的参照物才能确定最终位置. 如果不设定下级视图的参照物,那么下级视图默认显示在Relative ...

  3. Android中MediaStore的介绍

    (1)简介 MediaStore是android系统提供的一个多媒体数据库,专门用于存放多媒体信息的,通过ContentResolver即可对数据库进行操作. MediaStore.Files: 共享 ...

  4. Android中的Launcher介绍

    launcher是安卓系统中的桌面启动器,安卓系统的桌面UI统称为Launcher.Launcher是安卓系统中的主要程序组件之一,安卓系统中如果没有Launcher就无法启动安卓桌面,Launche ...

  5. android中拍照功能介绍,Android实现拍照功能

    大家好,这是一个简单的拍照功能,很简单的界面,一个显示图像区域SurfaceView一个"拍照"按钮.直接上代码! 1.CameraDemoActivity.java(主界面) p ...

  6. Android中FTP服务器、客户端搭建以及SwiFTP、ftp4j介绍

    本文主要内容: 1.FTP服务端部署---- 基于Android中SwiFTP开源软件介绍: 2.FTP客户端部署 --- 基于ftp4j开源jar包的客户端开发 : 3.使用步骤 --- 如何测试我 ...

  7. Android中SlidingDrawer介绍【安卓进化三十四】

    Android中SlidingDrawer介绍[安卓进化三十四] 安卓中1.5后加入了SlidingDrawer[隐藏式抽屉],设计原理在你的UI布局有限的情况下,放不下太多的控件的时候,可以考虑用这 ...

  8. Linux驱动学习--android中的内存管理机制ION(一)--简单介绍

    目录 一.引言 二.ION的介绍及使用 ------> ION介绍 ------> ION的使用 ------> HEAP种类 三.接口分析 ------> 主要数据结构 -- ...

  9. android 清除cookie,Android 获取和清除 WebView 中的 Cookie

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 项目中如果用到了 WebView,那就免不了跟 Cookie 打交道. 比如,你时常需要判断用户的登录状态,如果用户未登 ...

最新文章

  1. 用DriverStudio开发USB驱动程序
  2. nginx出现 500 Internal Server Error的解决办法
  3. 拥抱ARM妹子 序章!ARM妹子~~ 哥我来啦!
  4. 如何开发神经网络来预测电离层中的干扰
  5. FTP超详解及搭建步骤
  6. 计算机组成原理__第6章之硬盘存储器
  7. PMcaff-干货| 哪些 iOS 应用让你很满意并能提高生活质量?
  8. “撤县设市”の利与弊
  9. Python相似度计算【大总结】
  10. 2018年电子设计大赛主要元器件、模块资料汇总
  11. 互联网大佬的乌镇人设
  12. 柯基数据通过Rainbond完成云原生改造,实现离线持续交付客户
  13. 音频文件 数据库存储_刚哥谈架构 (六) 谈谈数据库架构
  14. 销售单据 4. 销售单据类型 - 抬头层次
  15. U盘文件夹全变为.exe格式或U盘文件全部消失(U盘AutoRun病毒解决方法)
  16. 电子科技大学计算机专业分班,我校大类招生专业分班说明,原则是……
  17. 基于澳大利亚气象数据集可视化分析及降雨预测
  18. 把秒转化成几小时几分钟和几秒java
  19. Android渠道SDK接入常见问题
  20. Java笔记(六)——类和对象(上) 类的定义 / 初始化 / toString

热门文章

  1. GOF设计模式趣解(23种设计模式)
  2. VHDL学习笔记-(1)Generic类属
  3. c#串口通讯详解(附源码)
  4. Python读取Excel表格
  5. 自然语言处理与信息与计算科学专业的联系
  6. 三十六计网页游戏风云服务器,2019最火爆真正无限元宝BT服《三十六计SF+江山风云录SF》火爆新区 开局秒BOSS一刀满地神装首冲VIP13...
  7. springBoot Table 'platform-plus.act_ge_property' doesn't exist
  8. Python 学习之 --- 语法部分(字符串函数)
  9. 2021年12月03日问题汇总
  10. HydraJohn的简单使用