前文:【python socket編程】—— 3.響應html
在Flask
框架中有一個redirect
函數,用於實現頁面的跳轉,如今咱們來實現它。原理就是:當瀏覽器接受到服務器響應的狀態碼是301
或者302
時,表示請求的頁面已經永久或臨時性轉移到了新的位置,而這個新的位置儲存在響應的header
裏Locaiton
這個字段。例如一個實現跳轉的響應以下:python
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和sessionsegmentfault