cookie 和 session
Cookie 保存于本地 ,session 保存于服务器;同时我们也看到,由于采用服务器端保持状态的方案在客户端也需要保存一个标识,
所以session机制可能需要借助于cookie机制来达到保存标识的目的,但实际上它还有其他选择。
区别:
1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session。
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE。
4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
当你浏览京东或者天猫的时候,登录成功以后(一次请求),想查看我的订单(另一次请求),但是http是短连接(连接一次就断开),服务器该如何判断你是否登录呢?所以在服务器端需要有一个保存用户状态地方(session),客户端登录成功后,服务端向客户端浏览器写入一段字符串(标识),客户端每次访问的时候需要带上这个标识,服务端根据这个标识就能获取客户端信息了。客户端保存这个标识就叫做cookie。
构成:
1、自动生成一段字符串
2、将字符串发送到客户端的浏览器(cookie),同时把这段字符串当做key放在session里。(可以理解为session就是一个字典)
3、在用户的session对应的value里设置任意值(字典里面可以继续套字典)
session基本操作
- 获取session:request.session[key]
- 设置session:reqeust.session[key] = value
- 删除session:del request.session[key]
Ajax请求最主要的两点:
1) 分析出ajax请求时需要携带参数。
2) 分析出对应的视图函数处理完成之后,返回的json的数据格式。
实例:
$.ajax({
url:"/ajax_data/", #目标URL
type:'POST', #请求方式
data:{h:host,p:port},
success:function(arg){
console.log(arg)
}
})
$(".btnLogin").click(function () {
$.ajax({
'url': "/login/",
'type': 'POST',
'data': {
user: $('.user').val(),
pwd: $('.pwd').val(),
"csrfmiddlewaretoken": $("[name='csrfmiddlewaretoken']").val()
},
success: function (data) {
var data = JSON.parse(data);
if (data["user"]) {
location.href="/shouye/"
}
else {
var errormsg = data["errormsg"];
$(".errmsg").html(errormsg).css("color", "red");
setTimeout(function () {
$(".errmsg").html("")
},3000)
}
}
})
})