数据的两种存储方式 cookie和session
一:什么是cookie
1、cookie是在服务端创建
2、cooki是保存在浏览器这一端
3、cookie的生命周期可以通过 cookie.setMaxAge(2000);
(如果不设置生命周期,cookie的生命周期当浏览器关闭时就消亡)
4、cooki可以被多个浏览器共享
5、一个web应用可以保存多个cookie。但保存在同一个cookie文本在客户端浏览器下。
6、cookie存放时候是以明文方式存放,因此安全性较低,可以通过加密后存放。
7、每次请求会携带与当前服务相关的键值对数据,cookie明文显示数据,用户可以知道cookie,数据存储在浏览器中容易被暴露,被获取,不存敏感数据
二:什么是seession:
1、session是存放在服务器的内存中。
2、一个用户的浏览器。,独享一个session域对象
3、session中属性默认的生命周期是30分,可以通过html文件来修改
4.服务器能够为不同的浏览器提供不同的session,
因为每个浏览器取访问web站点的时候,如果发出的http请求没有带JSESSIONID头就会自动给你创建一个并返回
5.session开启需要依赖数据库,因此需要确定是否存在与session相关的表
三:session和cookie的区别:
存放位置:
1.cookie存放在客户端的临时文件里。创建与服务端,保存在浏览器,可以有多个浏览器共享
2.session存在服务器的内存中,一个session域对象为一个用户浏览器服务。
安全性:
1.cookie是以文明方式存放在客户端,安全较差,可以通过md5再存放、
2.session是存放在服务器端的内存中,所以安全性好
网络传输量:
1.cookie会传递信息给服务端
2.session的属性值不会给客户端
生命周期:
1.cookie是累计时间
2.session是间隔时间
session失效情况:
1、关闭服务器
2、重装 web应用
3、设置了国企时间,时间到了
4、服务器错误也会让session失效。
使用原则:
session会占用服务器的内存
从范围来看
1.session为单用户独享
2.cookie为多个用户浏览器共享
保存信息的方法有两种:
1、保存在文件里面,
2、保存在数据库里面
from urllib import request,parse
from urllib.error import HTTPError,URLError
def get(url,headers=None):
return urlrequests(url,headers=None)
def post(url,form,headers=None):
return urlrequests(url,form,headers=heardes)
def urlrequests(url,form=None,headers=None)
user_agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
if headers == None:
headers = {
'User-Agent':user_agent
}
html_bytes=b''
try:
if form:
form_str = parse.urlencode(form)
form_bytes = form_str.encode('utf-8')
req = request.Resquest(url,data=form_bytes,headers=headers)
else:
req = request.Resquest(url,headers=headers)
response = request.urlopen(req)
html_bytes = response.read()
except HTTPError as e:
print(e)
except URLError as e:
print(e)
return html_bytes
if __name__ == '__main__':
url = 'http://www.baidu.com'
html_byte = get(url)
print(html_byte)