基于Django的电子商务网站开发(连载7)

简介: 基于Django的电子商务网站开发(连载7)

1.3.5 HTTP的无状态


通信中无状态协议是指同一个会话的连续两个请求互相不了解,它们由最新实例化的环境进行解析,除了应用本身可能已经存储在全局对象中的所有信息外,该环境不保存与会话有关的任何信息。


HTTP是一个无状态协议,这意味着每个请求都是独立的,Keep-Alive不能改变这个结果。


缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。


HTTP协议这种特性即有优点也有缺点,优点在于服务器得到了解放,每一次请求“点到为止”不会造成不必要连接占用,缺点在于每次请求会传输大量重复的内容信息。


进行动态交互的Web应用程序出现之后,HTTP无状态的性质严重阻碍了这些应用程序的实现,这是因为交互是需要承前启后的,比如“购物车”的程序就要知道用户到底在之前选择了什么商品。这样,两种用于保持 HTTP 连接状态的技术就应运而生了,它们分别是CookieSession


Cookie可以保持登录信息到用户下次与服务器的会话,用户可以这次登录,而下次登录不需要输入用户名和密码。而还有一些Cookie在用户退出会话的时候就被删除了,这样可以有效保护个人隐私(这种cookie叫做非持久型cookie,具有固定会话期限的cookie叫做持久型cookie)。


Cookie最典型的应用是判定注册用户是否已经登录了网站,用户可能会得到提示,是否在下一次进入此网站时保留用户信息以便简化登录手续,这些都是Cookie的功用。另一个重要应用场合是“购物车”之类处理。用户可能会在一段时间内在同一家网站的不同页面中选择不同的商品,这些信息都会写入 Cookie,以便在最后付款时提取信息。图1-13为网易126邮箱网站通过Cookie保持登录选项。图1-14 京东网站中购物车中内容的显示。

     

image.png

               1-13 126网站通过Cookie保持登录选项  


image.png

1-14 京东网站中购物车中内容的显示


Cookie另外一个解决方案就是Session,它是通过服务器来保持状态的。


当客户端访问服务器的时候,服务器会根据需求设置Session,将会话信息保存在服务器上,同时将标示 Session SessionId 传送给客户端浏览器,浏览器将这个SessionId保存在客户端的内存中,称之为没有过期时间的Cookie。当浏览器关闭后,这个Cookie就会被清掉,它不会存在于用户的Cookie临时文件。


以后浏览器每次请求都会额外加上这个参数值,服务器会根据这个SessionId,就能取得客户端的数据信息。


如果客户端浏览器意外发生关闭,服务器保存的Session数据是不会立即释放的,这个时候数据还会存在,只要知道那个SessionId,就可以继续通过请求获得此 Session的信息,因为此时后台的Session还存在,当然可以设置一个Session超时时间,一旦超过规定时间没有客户端请求时,服务器就会清除对应SessionIdSession信息。

目录
相关文章
|
3月前
|
前端开发 搜索推荐 算法
中草药管理与推荐系统Python+Django网页界面+推荐算法+计算机课设系统+网站开发
中草药管理与推荐系统。本系统使用Python作为主要开发语言,前端使用HTML,CSS,BootStrap等技术和框架搭建前端界面,后端使用Django框架处理应用请求,使用Ajax等技术实现前后端的数据通信。实现了一个综合性的中草药管理与推荐平台。具体功能如下: - 系统分为普通用户和管理员两个角色 - 普通用户可以登录,注册、查看物品信息、收藏物品、发布评论、编辑个人信息、柱状图饼状图可视化物品信息、并依据用户注册时选择的标签进行推荐 和 根据用户对物品的评分 使用协同过滤推荐算法进行推荐 - 管理员可以在后台对用户和物品信息进行管理编辑
94 12
中草药管理与推荐系统Python+Django网页界面+推荐算法+计算机课设系统+网站开发
|
7月前
|
搜索推荐 算法 前端开发
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
202 4
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
|
安全 测试技术 Python
基于Django的电子商务网站开发(连载39)
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript, 主文件是:zentao.py 。bugreport是禅道,script是python3+selenium 3,按照规则在禅道上书写的bugreport可由zentao.py程序生成py测试脚本。
75 0
基于Django的电子商务网站开发(连载39)
|
存储 安全 前端开发
基于Django的电子商务网站开发(连载37)
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript, 主文件是:zentao.py 。bugreport是禅道,script是python3+selenium 3,按照规则在禅道上书写的bugreport可由zentao.py程序生成py测试脚本。
154 0
基于Django的电子商务网站开发(连载37)
|
测试技术 Python
基于Django的电子商务网站开发(连载36)
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript, 主文件是:zentao.py 。bugreport是禅道,script是python3+selenium 3,按照规则在禅道上书写的bugreport可由zentao.py程序生成py测试脚本。
96 0
基于Django的电子商务网站开发(连载36)
|
XML 测试技术 数据库
基于Django的电子商务网站开发(连载34)
基于Django的电子商务网站开发(连载34)
68 0
基于Django的电子商务网站开发(连载34)
|
XML 测试技术 数据格式
基于Django的电子商务网站开发(连载33)
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript, 主文件是:zentao.py 。bugreport是禅道,script是python3+selenium 3,按照规则在禅道上书写的bugreport可由zentao.py程序生成py测试脚本。
97 0
基于Django的电子商务网站开发(连载33)
|
SQL XML 前端开发
基于Django的电子商务网站开发(连载40)
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript, 主文件是:zentao.py 。bugreport是禅道,script是python3+selenium 3,按照规则在禅道上书写的bugreport可由zentao.py程序生成py测试脚本。
184 0
|
测试技术 Python
基于Django的电子商务网站开发(连载38)
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript, 主文件是:zentao.py 。bugreport是禅道,script是python3+selenium 3,按照规则在禅道上书写的bugreport可由zentao.py程序生成py测试脚本。
92 0
|
XML 测试技术 数据格式
基于Django的电子商务网站开发(连载35)
基于Django的电子商务网站开发(连载35)
107 0