转自http://www.cnblogs.com/weifengxiyu/p/5529969.html
Cookie是用于维持服务端会话状态的,通常由服务端写入,在后续请求中,供服务端读取。
1、server通过HTTP Response中的"Set-Cookie: header"把cookie发送给client
2、client把cookie通过HTTP Request 中的“Cookie: header”发送给server
3、每次HTTP请求,Cookie都会被发送。
http请求发送cookies的条件:
1、本地已经缓存有cookies
2、根据请求的URL来匹配cookies的domain、path属性,如果都符合才会发送。
举个例子:访问www.baidu.com时,就不发送www.qq.com的cookies.
Cookies查看与存放路径
cookies查看:
大家可以使用抓包工具,这种工具就不多话,网上搜索出很多。使用这些工具中可以清晰的看到Http Request 中的Cookie, 和Http Response中的cookie
cookies存放路径:
这里以iOS客户端请求为例:
客户端请求后,cookies会保存在App的沙盒下:
这是我做应用的沙盒路径:/Users/a-hing/Library/Developer/CoreSimulator/Devices/FECA1CCE-4F9D-42B7-AC84-EEB94171E37C/data/Containers/Data/Application/79CEED3E-F7D9-4589-BEA5-44E1345CA71A/Library/cookes
大家可以去到自己应用的沙盒路径下,打开cookies看看里面的内容。
网站的登陆与App的自动登陆原理:
用户在连接服务器时,服务器生成一个唯一的SessionID 。而SessionID这一数据则是保存到客户端,
用Cookie保存的,用户提交页面时,会将 SessionID提交到服务器端,来存取Session数据。
Cookie cookie = new Cookie("mycookie"+cookieNo, String.valueOf(cookieNo));
两个String串组成cookies。