Day20

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)

}
}

})
})
原文地址:https://www.cnblogs.com/jnbb/p/7942182.html