python中 Cookie 和session的使用

本文详细介绍了Cookie和Session的工作原理及在Python中的使用。Cookie是服务器颁发给客户端并存储在浏览器的小段文本信息,用于维持用户状态。Session则将用户信息存储在服务器端,通过Cookie中的sessionId进行匹配。在Django框架中,讲解了如何设置、校验和管理Cookie与Session。总结了两者区别与联系,包括它们在客户端与服务器端的存储位置,以及如何在客户端禁用Cookie时仍能利用Session进行会话管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.Cookie 和 Session介绍:

Cookie:

Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客 户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务 器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。

Session:

Session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。

如果说Cookie机制是通过检查客户身上的“通行证”来确定客户身份的话,那么Session机制就是通过检查服务器上的“客户明细表”来确认客户身份。Session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了。

 

二.Cookie:

1.设置cookie

def index(request):
    
    response = render_to_response("index.html") #变量指出响应
    
    response.set_cookie("name","laobian")#设置cookie
        
        # key, 键
        # value='', 值
        # max_age=None,  寿命,秒
        # expires=None, 过期时间,和寿命冲突
        # path='/', cookie起作用的范围
        # domain=None, cookie起作用的域名
        # secure=False, 是否用https传输cookie
        # httponly=False, 只用用http传输cookie
    
    return response #返回含有cookie的响应

2.校验cookie

1.先获取cookie
2.进行逻辑判断

from django.http import HttpResponse

def newList(request):
    
    name = request.COOKIES.get("name") # 获取cookie --->1<---  
    
    if name:     # 进行逻辑判断 --->2<---   
        articles = Article.objects.order_by("-time")
        return render_to_response("newList.html",locals())
    
    else:
        return HttpResponse("老边呢?")

3.删除cookie

from django.http import HttpResponse

def newList(request):

    name = request.COOKIES.get("name")

    if name:

        articles = Article.objects.order_by("-time")

        response = render_to_response("newList.html",locals())

        response.delete_cookie("name")  # 删除cookie

        return response

    else:

        return HttpResponse("老边呢?")

三.Session:

1.设置session

def index(request):
    
    response = render_to_response("index.html") #变量指出响应
    request.session["username"] = "laobian"   #设置session
    response.set_cookie("name","laobian")     #设置cookie
        # key, 键
        # value='', 值
        # max_age=None,  寿命,秒
        # expires=None, 过期时间,和寿命冲突
        # path='/', cookie起作用的范围
        # domain=None, cookie起作用的域名
        # secure=False, 是否用https传输cookie
        # httponly=False, 只用用https传输cookie
    
    return response #返回含有cookie的响应

2.获取和删除session:

from django.http import HttpResponse

def newList(request):
    
    name = request.COOKIES.get("name")
    
    session_name = request.session.get("username") #获取session
    
    del request.session["username"]  #删除session
    
    if name:
        articles = Article.objects.order_by("-time")
        response = render_to_response("newList.html",locals())
        response.delete_cookie("name")
        return response
    else:
        return HttpResponse("老边呢?")

Cookie 和session在django当中具体的使用

如果网站涉及到了cookie登录校验

除了

1、login 登录

2、Register 注册

3、404

总结:

1.cookie与session的区别:

cookie保存在客户端,未设置存储时间的cookie为会话cookie保存在浏览器的进程开辟的内存中,当浏览器关闭后会话cookie也会被删除;设置了存储时间的cookie保存在用户设备的磁盘中直到过期。

session保存在服务器端,存储在IIS的进程开辟的内存中。

2.cookie与session的联系:

当服务器端生成一个session时就会向客户端发送一个cookie保存在客户端,这个cookie保存的是session的sessionId。这样才能保证客户端发起请求后客户端已经登录的用户能够与服务器端成千上万的session中准确匹配到已经保存了该用户信息的session,同时也能够确保不同页面之间传值时的正确匹配。

注:为了防止客户端禁用了cookie而无法使用session的情况可以把sessionId和其他用户信息重写到url中,每次请求都在url中附带sessionId和用户信息(不包含用户的敏感信息)
 

 

### 回答1: Python爬虫中的cookiesession是两个重要的概念。 Cookie是服务器在客户端存储的一小段文本信息,用于记录用户的登录状态、浏览历史等信息。在Python爬虫中,我们可以使用requests库中的cookies参数来设置获取cookie信息。 Session是一种记录用户状态的机制,它可以在不同的请求之间保持用户的登录状态。在Python爬虫中,我们可以使用requests库中的Session对象来创建一个会话,从而实现登录、保持登录状态等操作。通过Session对象,我们可以方便地管理cookie信息,实现自动登录持久化会话等功能。 ### 回答2: Python爬虫是指使用Python语言编写程序,自动获取互联网上的信息并进行数据分析或者存储的技术。而CookieSession则是爬虫程序中常用的两种技术,它们的作用是帮助爬虫程序模拟网站的登录情况维持网站爬虫程序之间的会话状态,以便进行身份认证绕过防护机制。 Cookie是存储在浏览器客户端的数据,主要用于表示用户身份、用户访问时间、用户信息等,如用户访问某个网站时会在浏览器中创建一个Cookie,这个Cookie信息会被服务器进行读取处理。当爬虫程序需要模拟网站登录时,需要获取并保存服务器返回的Cookie,以便后续更好的请求响应网站数据。Python中通过requests模块进行Cookie使用。requests模块中有一个Session对象,默认情况下,Session对象会存储Cookie到本地,这就相当于保存了用户的登录状态,方便后面的请求使用。在requests的getpost方法调用时,通过传递session对象作为第一个参数,就可以在整个请求过程中使用保存过的Cookie信息。具体使用方法如下: ``` # 创建session对象 import requests session = requests.Session() # 网站登录请求 session.post(login_url, data=user_data) # 获取用户信息 user_info = session.get(user_url) ``` 而Session则是保存Web应用程序会话的数据结构,即Session是由Web应用程序使用的一种机制,该机制通过在客户端存储或通过增加HTTP Cookie的方式传递标识符来维护状态信息。Session的数据保存在服务器端,每次请求时都会带上保存在Cookie中的Session ID,服务器根据Session ID来查找对应的Session对象。在Python中,我们可以通过Flask、Django等Web框架来实现Session使用。 综上,CookieSession是爬虫程序中非常重要的技术,能够帮助爬虫程序更好地模拟登录保持会话,让爬虫程序更快速、准确地抓取网站信息。但需要注意的是,爬虫程序的使用需要遵守网站的相关规定道德底线,不得违反相关法律法规道德规范。 ### 回答3: Python爬虫是一个广泛应用于网络数据抓取处理的技术。在Python爬虫中,cookiesession是非常重要的概念,它们有助于实现身份验证保持用户会话状态。在本篇文章中,我们将具体介绍cookiesessionPython爬虫中的应用。 1. Cookie Cookie是一种客户端存储机制,通常由Web服务器在HTTP响应头中返回。Cookie可以包含存储在客户端计算机上的信息,并在相应的HTTP请求中发送回服务器。Python中的Requests库可以方便地处理Cookie使用方法如下: ``` import requests # 创建Session对象 s=requests.Session() # 访问登陆页,获取cookie s.get('http://www.example.com/login') # 从响应中读取cookie cookie=s.cookies.get_dict() # 发送带有cookie的请求 s.get('http://www.example.com/user',cookies=cookie) ``` 从上面的代码可以看出,通过创建一个Session对象,我们可以在访问登陆页时获取Cookie,在后续请求中将Cookie发送回服务器。这种方式可以模拟用户登陆状态,方便爬取需要用户身份验证的数据。 2. Session Session是另一种用于跟踪用户会话状态的机制。与Cookie不同,Session是由Web服务器在服务器端管理的。当用户发送请求时,服务器会为用户创建一个Session,该Session在Web服务器上存储。Python中也可以方便地使用Session来处理会话状态,使用方法如下: ``` import requests # 创建Session对象 s=requests.Session() # 在Session中发起请求 s.get('http://www.example.com/user') ``` 通过创建一个Session对象,我们可以在爬取时保持用户的会话状态,实现一些需要用户登录后才能进行的操作。与Cookie不同,Session的内部机制是由Web服务器实现的,并不需要我们自己去处理。 总结 从上述内容可以看出,CookieSessionpython爬虫中起着至关重要的作用。Cookie可以方便地处理用户身份验证,从而实现一些需要用户身份验证的操作。而Session则可以方便地处理用户会话状态,为用户提供一种无缝的体验,在爬虫中也有广泛的应用。因此,Python爬虫开发者应该熟练掌握CookieSession的用法,以便在爬取数据时更加高效、方便。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值