http学习中,,,,,,求教两个关于cookie小白问题。
使用cookie和session可以保持客户端登陆状态。
Cookie可以携带账号密码,有时, 会携带session id
但是这样看起来,体现不出“保持登陆状态”的“保持”二字啊,,,,
我的直(无)观(知)的理解中,这其中只体现出了“验证”
cookie的作用只是携带帐号密码,然后服务器验证用户帐号密码是否匹配。(当然cookie可以获得服务器更新的最新cookie,覆盖本地的cookie)
那么,是否可以这样,我每次的请求时,增加参数来发送账号密码(不是使用cookie),这样不也能“保持”(验证?)登陆状态?、
android在native中,使用httpclient或者httpurlconnection或者volley等等,保存的cookie路径,是否与webview保存的路径相同?
如果不同,
1)是否需要增加一步,把native中保存的cookie,读写到webview默认保存cookie的地方,让webview和native共享相同的cookie。
2)如果我的cookie保存在内存,不保存到本地(其实我不确定这样科学吗)
这样的话,我只需在native里将cookie保存到一个全局的变量里,然后在webview里面读取。
1
lynnworld 2015-01-26 17:59:07 +08:00
保持体现在cookie 和session有一定的过期时间.过期作废.
|
2
lynnworld 2015-01-26 18:03:45 +08:00
另外可搜:webview 共享cookie 解决第二个问题。
|
3
wzxjohn 2015-01-26 18:07:16 +08:00 via iPhone
谁告诉你 Cookie 必须要保存账号密码才能保持登陆状态的?!
|
4
nilennoct 2015-01-26 18:23:30 +08:00 via iPad
一般cookie保存的是账户信息的hash吧,增加参数当然也能实现你说的验证的功能,但是这个参数保存在哪里、怎么在每次请求时都发送到服务器(跳转页面、form提交、ajax提交……),怎么优(sheng)雅(li)地实现还请好好考虑==
第二个问题见 @wzxjohn 所述 |
5
iyaozhen 2015-01-26 18:43:59 +08:00
第一个问题:谁告诉你把账号密码存进cookie的?不安全啊
cookie(值)会在每次http请求中带上,server端有处理的话(比如php session_start())以后再每次请求会有一个sessionid,这样就知道是谁了。http本身是无状态的,只有通过session来保存状态。 第二个问题,没做过安卓,不是太清楚。 |
6
lalalanet 2015-01-26 21:31:35 +08:00
你要保持多久登录状态,如果就是session超时时间内的,带上sessionid就完了。 如果禁用了cookie,这个sessionid自然会出现在POST/GET参数中。
如果你想保持超过session时间的登录状态,完全不是这么设计。 |