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", "");
  ... 
}

最新文章

  1. 开源物联网框架ServerSuperIO(SSIO),项目中实践应用介绍
  2. iOS应用文件夹
  3. Rails,uva 514
  4. cocos2d-x之value
  5. SDUST 作业10 Problem D 魔方阵
  6. AndroidManifest.xml 配置权限大全
  7. Google Android SDK开发范例------------20141119
  8. 什么是Web Service?
  9. Algorithms 4th - 1.1 Basic Programming Model - EXERCISES
  10. EL表达式中引用隐式变量
  11. iOS开发tableview二级联动的细节实现中注意的细节总结
  12. VB6之WM_COPYDATA
  13. 自然饱和度(Vibrance)算法的模拟实现及其SSE优化(附源码,可作为SSE图像入门,Vibrance算法也可用于简单的肤色调整)。
  14. [转载] Fiddler为所欲为第二篇 像OD一样调试 [二]
  15. B1018. 锤子剪刀布
  16. c++ hash_map/unordered_map 使用
  17. 使用git连接本地和远程github
  18. Sabotage UVA - 10480 (输出割边)
  19. Linux命令之locate命令
  20. Linux针对缺少响应xxx.so.xxx解决方案

热门文章

  1. PostGIS解析Geometry几何对象
  2. 上海交大课程MA430-偏微分方程续论(索伯列夫空间)之总结(Sobolev Space)
  3. Python 中的 None 与真假
  4. laravel中的数据迁移和数据填充
  5. 6.deque
  6. spring boot整合mail
  7. dom4j组装xml 以及解析xml
  8. vmware workstation虚拟机克隆后不能上网(桥接模式下)
  9. SQL替换制表、回车、换行符和首尾空格
  10. JDBC连接SQL Server遇到的问题