Python中set_cookie()函数的使用示例及说明
在Python中,我们可以使用set_cookie()函数来设置HTTP响应的cookie。cookie是一种用于存储在客户端的小型文本文件,它包含有关用户的信息,在每次发送HTTP请求时都会被浏览器自动带上。
set_cookie()函数的语法如下:
set_cookie(name, value='', max_age=None, expires=None, path='/', domain=None, secure=None, httponly=False)
参数说明:
- name:cookie的名称。
- value:cookie的值。
- max_age:cookie的过期时间,以秒为单位。如果不设置,cookie将在浏览器关闭时过期。
- expires:cookie的过期日期,格式为'%a, %d-%b-%Y %H:%M:%S GMT'。如果不设置,cookie将在浏览器关闭时过期。
- path:cookie的路径。如果设置为'/',则表示整个网站都可以访问cookie。
- domain:cookie的域名。如果设置为'.example.com',则表示example.com及其子域名都可以访问cookie。
- secure:是否只通过安全协议传输cookie。默认为False。
- httponly:是否只能通过HTTP协议访问cookie。默认为False。
下面是一个使用示例:
from http.server import BaseHTTPRequestHandler, HTTPServer
class MyHandler(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header('Content-type', 'text/html')
self.end_headers()
# 设置cookie
self.send_cookie('name', 'Jack')
self.send_cookie('age', '20', max_age=3600) # 过期时间为1小时
# 输出cookie
self.wfile.write(bytes('Cookies:
', 'utf-8'))
for key, value in self.cookies.items():
self.wfile.write(bytes(f'{key}: {value}
', 'utf-8'))
server = HTTPServer(('localhost', 8000), MyHandler)
server.serve_forever()
在上面的例子中,我们创建了一个简单的HTTP服务器,当接收到GET请求时,会发送一些cookie给客户端,并将客户端的cookie打印出来。
运行服务器后,我们可以使用浏览器访问http://localhost:8000,然后在浏览器的开发者工具中查看响应的cookie。你会看到类似这样的输出:
Cookies: name: Jack age: 20
这说明我们成功地设置了两个cookie,并在响应中发送给了客户端。客户端可以在后续的请求中将这两个cookie带上,以实现状态的保持。
通过使用set_cookie()函数,我们可以方便地在Python中设置HTTP响应的cookie,从而实现一些基于cookie的功能,例如用户认证、会话管理等。
