首頁 >後端開發 >php教程 >手机上面上京东网站,在未登录的状态下,那么购物车信息如何存放??

手机上面上京东网站,在未登录的状态下,那么购物车信息如何存放??

WBOY
WBOY原創
2016-06-06 20:45:433578瀏覽

手机上面上京东网站,在未登录的状态下,那么购物车信息如何存放??

回复内容:

手机上面上京东网站,在未登录的状态下,那么购物车信息如何存放??

这个问题,和手机无关,和京东无关。只和HTTP标准有关:就是标准如何约定标识客户。

懂的看了@公子 的自然一目了然,简单亲切。看了公子的还不懂,不妨看看我的啰嗦:)。

我猜,题主真正需要理解的是,网站如何标识客户。如果是这样,那么,京东网站就不是关键参数,问题可以更加一般化为网站如何区分两个客户,为他们建立不同的购物车内容。

用户A,在北京使用chrome访问京东,放到购物车内一个剃须刀。用户B,在拐磨子登陆,放到购物车内一把锄头。因为用户还没有登录,故而网站并不知道他们是谁,要点是,用户A访问时,购物车内是他选购的,用户B也是。不要混在一起。在此场景下,只要不弄混,虽然我不知道用户姓甚名谁,都无所谓,互联网上,有id就行。

这个问题的一句话答案就是cookie(@公子说的:),第一个浏览器netscape 1.0就考虑到这个问题,并且加入到http规范里面。

过程是这样的:

  1. 服务器设置一个cookie。浏览器会把这个cookie记录到当前访问网站的域名下,如cart.jd.com
<code class="lang-php"><?php $value = "my cookie value";
setcookie("TestCookie",$value);
?>
</code>
  1. 下一个请求过来,浏览器会就会发现这个cart.jd.com 访问过,并且在这个域名的名下,记录了有cookie,就会按照http规范,发送这个cookie过来。而服务器可以检索这个 cookie :
<code class="lang-php"><?php // 输出个别的 cookie
echo $_COOKIE["TestCookie"];
echo "<br />";
?>
</code>
  1. 这里面,TestCookie 是一个key,"my cookie value"是值,这个值,就是一个字符串,可以很长,长到甚至把整个购物车的内容做个编码,把他放进去。

Session 也是常见的web编程概念,不过不是http标准的一部分。目的吗,是为了优化,有了它,购物车名单再长,对Session而言,客户端写的cookie也只是一个id,通过这个id,可以在服务器端的Session内获得全须全尾的购物车内容。

防喷补丁:
我最近刚刚读了一遍http 权威指南,自认为搞懂了http协议。看到这个问题,虚荣心来了,我是来显摆的:)

用COOKIES啊!这都不知道?看图就明白了,不过具体COOKIS哪个对应什么东西我没有去研究过。

手机上面上京东网站,在未登录的状态下,那么购物车信息如何存放??

购物车信息与是否登录没有任何关系啊,你看很多网站不登陆还是可以购物的。
购物车信息一般不采用cookies,cookies是存放在浏览器端的数据,存在被篡改的可能性,而购物车数据牵扯到一致性问题,得存放到服务器端。
服务器端存放数据用session回话。

也就是说,客户端的目标是保持让服务器端识别出唯一的访客,服务器端存放敏感的购物车内数据。

在京东和淘宝上,我们发现我们添加到购物车的数据,换一台电脑重新登录账号,还在购物车内,也就是说这些数据肯定是服务器端持久化了,保存在数据库中。

——————
手机上的京东和PC上的京东,没有什么区别,还是HTTP的东西。

不知道我的认识对你有无帮助

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn