前文:【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: /
那么浏览器下次请求,request
的header
里就会带上Cookie: Harp
这一行了。此时服务端解析request
,根据cookie
就知道当前用户是登录状态的。segmentfault
显然,直接在cookie
里写用户的username
是不安全的。咱们能够把username
存在session
里,假设session
是一个字典,用户登陆验证成功后,随机生成一个长的字符串session_id
做为key
,username
做为value
存入session
中,而后把session_id
做为cookie
返回给浏览器,浏览器下次请求时候带上的cookie
内容为这个session_id
,咱们去session
里取对应的value
便可。浏览器