首页 > 开发 > JAVA > 正文

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

2017-09-07 09:23:21  来源:网友分享

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

解决方案

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

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

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

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

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

过程是这样的:

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

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

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