欢迎访问宙启技术站
智能推送

Python中set_cookie()函数的使用示例及说明

发布时间:2024-01-16 06:24:13

在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的功能,例如用户认证、会话管理等。