cookie和session可能需要知道的知识
做Android程序员,了解服务器的知识是相当重要的,比如cookie和session。
首先介绍一点背景知识,我们知道HTTP的连接是无状态的,HTTPS只是增加了安全,有了SSL证书来验证,作为服务器怎么通过HTTP来知道客户端的状态呢?
比如如何识别来访问的每个连接都是哪个客户发起的连接,只凭字段或许可以知道是哪个浏览器平台,但是区别每个用户是不可以的,当初设计浏览器的公司netscape就开发出了一种机制,名叫cookie,用cookie来记录唯一的客户。在cookie上面给每个到来的连接标上一个唯一的识别id,如果发现有了id,就针对进行操作,各种交互和用户友好性行为。cookie是存储在浏览器端的,由浏览器的W3C标准来保持,每次都是由服务器的response流addCookie然后到客户端,由浏览器去判断cookie的一些字段来进行对应的处理,比如是序列化还是存储在内存,如果存储在内存,那么当关闭浏览器cookie就消失了,有点类似于隐私模式。cookie可能有这么些字段,MaxAge:-1表示内存的时间,0表示清除cookie,整数表示多少时间(通常单位为second秒)。有些网站还会把用户的id和密钥放在cookie中,不过现在的密钥一般都会进行加密才写入到cookie中,服务器访问的时候也会进行解密,id也会进行加密,比如百度的就加密了。我们可以用js的语法查看cookie。
javascript:{cStr=document.cookie;alert(cStr);} 或者简单地写alert(document.cookie)
Hm_lpvt_6859ce5aaf00fb00387e6434e4fcc925=1448292821; Hm_lvt_6859ce5aaf00fb00387e6434e4fcc925=1448206648,1448210112,1448292821,1448292821; IK_4A9653CF7DB7ACF29B1600233C8E8039=5; IK_CID_1=1; IK_CID_74=1; IK_CID_83=1; IK_CID_84=1; IK_CID_95=1; BAIDUID=4A9653CF7DB7ACF29B1600233C8E8039:FG=1; BIDUPSID=CFBBD1FD07741EDF61F7570768B3694D; H_PS_PSSID=17518_1421_18155_17949_17971_18042_15208_11816_18087_10633; MCITY=-%3A; PSTM=1447961566
以上是获取的我地百度上面的cookie,毕竟客户端的东西还是可以用js来操作的。
W3C的标准保证了不会有跨域读取cookie,这里面我们想当然的会有一个钻漏洞的想法,既然服务器可以读取cookie,那么服务器可以不读取自己的,读取用户访问过得,那不是泄露了用户隐私吗?其实只要用户使用了W3C标准的浏览器,那么浏览器就会保证不会把不属于该域名的cookie传递给不相关域名的服务器。
session是服务器端的一种保存机制,在服务器端的内存中加载一些用户的信息,储存在数据库中,不过一旦并发连接数多了,那么对于服务器的负担将是比较重的。
对于客户端还是需要一个cookie,cookie里面有一个叫做jsessionid的东西,这个用来和服务器的一一对应,客户端记录的信息比较少。不过对于用户来讲,可以禁用cookie,这时候怎么做呢,选择在url地址上面做手脚,可以在url地址上面带入一些id记录信息什么的,这种参数是不影响客户访问浏览器的具体资源的,关键是服务器端要做好相应地记录。
重点来了,如果是APP端,应该怎么做呢?APP端怎么去使用cookie,没错,java中有相关cookie的类,在这里面进行cookie的接受和处理。代码待编辑---
cookie和session可能需要知道的知识的更多相关文章
- cookie 和 session 的基础知识
cookie 和 session 的基础知识 cookie 和session 的区别详解 这些都是基础知识,不过有必要做深入了解.先简单介绍一下. 二者的定义: 当你在浏览网站的时候,WEB 服务器会 ...
- IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session和Token
本文引用了简书作者“骑小猪看流星”技术文章“Cookie.Session.Token那点事儿”的部分内容,感谢原作者. 1.前言 众所周之,IM是个典型的快速数据流交换系统,当今主流IM系统(尤其移动 ...
- 网络知识===cookie 、session、JSESSIONID的区别
cookie .session ? 让我们用几个例子来描述一下cookie和session机制之间的区别与联系.笔者曾经常去的一家咖啡店有喝5杯咖啡免费赠一杯咖啡的优惠,然而一次性消费5杯咖啡的机会微 ...
- PHP7语法知识(四):目录文件操作、Cookie与Session、MySQL数据库的使用、Redis数据库、PHP处理XML与JSON
目录文件操作 一.目录 1.判断文件类型: 2.创建和删除目录: 3.打开读取和关闭目录 4.获得路径中目录部分 5.目录磁盘空间 二.文件操作 1.打开文件: 2.读取文件: 3.获得文件属性: 4 ...
- 基础知识《十二》一篇文章理解Cookie和Session
理解Cookie和Session机制 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定 ...
- C#基础知识之理解Cookie和Session机制
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...
- django 中 cookie与session 相关的知识
cookie :它是一个字典
- cookie 和session 的区别详解
这些都是基础知识,不过有必要做深入了解.先简单介绍一下. 二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择, 都纪 ...
- cookie与session的爱恨情仇
这些都是基础知识,不过有必要做深入了解.先简单介绍一下. 二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择, 都纪 ...
随机推荐
- MySQL运行原理与基础架构
1.MySQL基础 MySQL是一个开放源代码的关系数据库管理系统.原开发者为瑞典的MySQL AB公司,最早是在2001年MySQL3.23进入到管理员的视野并在之后获得广泛的应用. 2008年My ...
- SR4000笔记
长时间运行情况下需要有降温处理(40度以下) 建议使用触发模式而非连续模式 850nm波长的光(虽然无害,建议不要直视) 12V DC 滤波镜头(允许24个LED激光波长的通过) 快闪:获取数据 慢闪 ...
- iPhone 崩溃日志解析
方法一.在编译时保留xx.app, xx.app.dSYM在/user目录下,xcode->orgernize->Device Logs就能够自动部分定位地址 方法二.xcode 有自带的 ...
- Cogs 97. [NOIP2007] 树网的核 Floyd
题目: http://cojs.tk/cogs/problem/problem.php?pid=97 97. [NOIP2007] 树网的核 ★☆ 输入文件:core.in 输出文件:core ...
- ACM编程技巧--代码片段
验证n是否是完全平方数 #include<math.h> double m=sqrt(n); if(floor(m+0.5)==m) printf("%d是完全平方数.\n&qu ...
- c#文件转化byte数组
public static byte[] ReadFile(string fileName) { if (!File.Exists(fileName)) { throw new Exception(& ...
- HDOJ-ACM1019(JAVA) 多个数的最小公倍数
题意:求多个数的最小公倍数 很简单,但是我一开始的做法,估计会让结果越界(超过int的最大值) import java.util.*; import java.io.*; public class M ...
- PC-用Windows XP自带的组策略加固操作系统
1.我的壁纸你别改==================================== 启动组策略时,单击“开始”按钮,选择“运行”命令,在“运行”文本框中输入“gpedit.msc”命令,即可启 ...
- Cassandra的登录认证授权
cassandra的登录验证机制是独自的,数据是集群共享的 参考:http://blog.csdn.net/y_y_y_k_k_k_k/article/category/5943357 1.初始安装启 ...
- GNU LIBC源代码学习之strcmp
比較两个字符串 我的代码块 #include <string.h> int my_strcmp(const char* s1,const char * s2) { if((s1==NULL ...