Home >Backend Development >PHP Tutorial >手机上面上京东网站,在未登录的状态下,那么购物车信息如何存放??
手机上面上京东网站,在未登录的状态下,那么购物车信息如何存放??
手机上面上京东网站,在未登录的状态下,那么购物车信息如何存放??
这个问题,和手机无关,和京东无关。只和HTTP标准有关:就是标准如何约定标识客户。
懂的看了@公子 的自然一目了然,简单亲切。看了公子的还不懂,不妨看看我的啰嗦:)。
我猜,题主真正需要理解的是,网站如何标识客户。如果是这样,那么,京东网站就不是关键参数,问题可以更加一般化为网站如何区分两个客户,为他们建立不同的购物车内容。
用户A,在北京使用chrome访问京东,放到购物车内一个剃须刀。用户B,在拐磨子登陆,放到购物车内一把锄头。因为用户还没有登录,故而网站并不知道他们是谁,要点是,用户A访问时,购物车内是他选购的,用户B也是。不要混在一起。在此场景下,只要不弄混,虽然我不知道用户姓甚名谁,都无所谓,互联网上,有id就行。
这个问题的一句话答案就是cookie(@公子说的:),第一个浏览器netscape 1.0就考虑到这个问题,并且加入到http规范里面。
过程是这样的:
<code class="lang-php"><?php $value = "my cookie value"; setcookie("TestCookie",$value); ?> </code>
<code class="lang-php"><?php // 输出个别的 cookie echo $_COOKIE["TestCookie"]; echo "<br />"; ?> </code>
Session 也是常见的web编程概念,不过不是http标准的一部分。目的吗,是为了优化,有了它,购物车名单再长,对Session而言,客户端写的cookie也只是一个id,通过这个id,可以在服务器端的Session内获得全须全尾的购物车内容。
防喷补丁:
我最近刚刚读了一遍http 权威指南,自认为搞懂了http协议。看到这个问题,虚荣心来了,我是来显摆的:)
用COOKIES啊!这都不知道?看图就明白了,不过具体COOKIS哪个对应什么东西我没有去研究过。
购物车信息与是否登录没有任何关系啊,你看很多网站不登陆还是可以购物的。
购物车信息一般不采用cookies,cookies是存放在浏览器端的数据,存在被篡改的可能性,而购物车数据牵扯到一致性问题,得存放到服务器端。
服务器端存放数据用session回话。
也就是说,客户端的目标是保持让服务器端识别出唯一的访客,服务器端存放敏感的购物车内数据。
在京东和淘宝上,我们发现我们添加到购物车的数据,换一台电脑重新登录账号,还在购物车内,也就是说这些数据肯定是服务器端持久化了,保存在数据库中。
——————
手机上的京东和PC上的京东,没有什么区别,还是HTTP的东西。
不知道我的认识对你有无帮助