cookie与session
技术的诞生:
http是个无状态的协议:两次请求之间相互独立,后一条请求无法使用前一条的一些状态,为了解决这种问题,发明了两种存储状态的技术,就是cookie和session。
cookie是用来在客户端保存状态的技术,session是在服务器保存状态的技术。
做爬虫的时候,如果要实现登录,客户端是通过cookie来保存登录信息,所以我们只需要模仿客户端的登录后的cookie头,就可以做到登录。
session:session就是会话,其本来的含义就是指有始有终的一系列动作或消息。在web中,会话对象是用来存储特定用户会话所需的属性及配置信息。
session对象的开始:
就是sessionId.客户端想要使用sessionId,如果是第一次发送这个用户登录,sessionId是不存在的,此时客户端是通过cookie将用户信息发送到服务器之后,服务器找到这个用户,就会在服务端生成一个sessionId,此时的session的生命开始。服务器就会把这个session的seesionid放在响应头的cookie字段中,传给客户端,客户端从cookie中拿到sessionid,这个用户的之后所有请求,都会在cookie中附带这个sessionId,服务器就可以通过这个sessionId来判断是哪个用户了。
session的销毁:
也就是session生命周期结束,是有服务器的session生命周期的时间来决定的。比如说服务器session创建到销毁是30分钟的有效期。30分钟一到,这个session就会自动销毁。在这30分钟内,即使关闭服务器也不会销毁sessionId。
session与cookie的联系:
session使用时,sessionid是附带在cookie中,要想使用session,必须要有cookie。
当cookie已被禁用,session会提示必须打开cookie,才能访问网站或使用url重写技术。
url重写技术:
将sessionId放在客户端url后面,传递给服务器,这样服务器也能找到对应的用户session。
cookie的组成:
name:名称,一旦创建,名称不可更改
value:该cookie的值
Domain:这个cookie可以访问的域名。www.baidu.com——>>域名:baidu.com
maxAge:cookie的失效时间,单位是秒,如果为正数,3,3秒失效;如果为0:永不失效;如果为负数:关闭浏览器就失效。
path:该cookie的使用路径。\index.html,只有index.html这个页面可以使用这个cookie。,\*:所有页面均可以使用这个
size:cookie的大小
expise:也是表示失效时间,和maxage一样
会话cookie和持久cookie:
持久化---将数据保存在硬盘上的过程。
序列化---讲对象保存在硬盘上。
在做爬虫的时候,如果要实现登录,客户端是通过cookie来保存登录信息,所以我们只需要模拟客户端的登陆后的cookie头,就可以做到登录 .
登录还有一种办法:
import requests
#创建session对象
#requests这个session对象有一个特点:就是可以保存请求过程中的状态信息
se = requests.session() url = 'http://www.renren.com/PLogin.do' data = { 'email':'13016031459', 'password':'********' }
#用这个session对象来进行登录
se.post(url,data=data,headers= headers) response = se.get(base_url,headers= headers)

浙公网安备 33010602011771号