前文:【python socket编程】—— 3.响应


Flask框架中有一个redirect函数,用于实现页面的跳转,现在我们来实现它。原理就是:当浏览器接受到服务器响应的状态码是301或者302时,表示请求的页面已经永久或临时性转移到了新的位置,而这个新的位置储存在响应的headerLocaiton这个字段。例如一个实现跳转的响应如下:

HTTP/1.1 302 OK 
Content-Type: text/html
Location: /login

这是一个很简单的http响应,状态码302表示原先请求的网页临时性转移到了/login'OK'这个没有影响,可以改成任意东西,如'JUMP'),很明显这就是用户请求的页面是需要登录才能查看的。因此redirect函数可以这样写:

def redirect(path):
    header = 'HTTP/1.1 302 JUMP\r\nContent-Type: text/html\r\n'
    location = 'Location: {}'.format(path)
    response = header + location
    return response.encode('utf-8')  

下一篇文章:【python socket编程】—— 5.实现cookie和session


Harpsichord1207
538 声望44 粉丝

前路漫漫