【python socket编程】—— 5.实现cookie和session

前文:【python socket编程】—— 4.实现redirect函数html


cookie的实现很简单,在服务器返回的响应中,header里增长Set-Cookie,浏览器接受到Set-Cookie中的value,下次访问这个网站的请求中就会带上这个cookie。编写一个增长cookie的函数:python

def add_cookie(cookie=''):
    header = 'HTTP/1.1 200 OK \r\nContent-Type: text/html\r\n'
    header += 'Set-Cookie: {}\r\n'.format(cookie)
    return header

假设用户登陆验证成功以后,咱们用add_cookie将其用户名username存入到cookie中返回给浏览器,例如承接前文,用户登陆成功后给其返回一个302跳转的响应,咱们在其中再加入cookie,此时response以下:编程

HTTP/1.1 302 JUMP 
Content-Type: text/html
Set-Cookie: Harp
Location: /

那么浏览器下次请求,requestheader里就会带上Cookie: Harp这一行了。此时服务端解析request,根据cookie就知道当前用户是登录状态的。segmentfault


显然,直接在cookie里写用户的username是不安全的。咱们能够把username存在session里,假设session是一个字典,用户登陆验证成功后,随机生成一个长的字符串session_id做为keyusername做为value存入session中,而后把session_id做为cookie返回给浏览器,浏览器下次请求时候带上的cookie内容为这个session_id,咱们去session里取对应的value便可。浏览器


下一篇文章:【python socket编程】—— 6.简单实现render_template和密码hash安全

相关文章
相关标签/搜索