会话和Cookies

一.静态网页和动态网页

网页的内容是HTML代码编写的,文字,图片等内容均通过写好的HTML代码来指定,这种页面叫作静态网页;这种网页缺陷很大,如可维护性差,不能根据URL灵活多变的显示内容等;如想要给网页的URL传入一个name参数,让其在网页中显示出来,这是无法做到的。

动态网页可以动态解析URL中的参数变化,关联数据库并动态呈现不同的页面内容,灵活多变;动态网站还可以实现用户登录和注册功能

二.无状态HTTP

HTTP的无状态是指HTTP协议对事务的处理没有记忆能力,也就是说服务器不知道客户端是什么状态。

此时用于保持HTTP连接状态的技术就出现了,分别是会话(Session)和Cookies,会话在服务端,即服务器端,用来保持用户的会话信息;Cookies在客户端,即浏览器端,有了Cookies,浏览器在下次访问网页时会自动附带上它发送给服务器,服务器通过识别Cookies并鉴定是哪个用户,然后判断用户是否是登录状态,然后返回对应的响应。

因此在爬虫中,有时候处理需要登录才能访问的页面时,我们一般会直接将登录成功后获取的Cookies放在请求头里面直接请求,不必重新模拟登录

1)会话

在web中,会话对象用来存储特定用户会话所需的属性及配置信息,这样,当用户在用户在应用程序的web页之间跳转时,存储在会话对象中的变量将不会丢失,而是在整个用户会话中一直存在下去;当用户请求来自应用程序的Web页时,则Web服务器将自动创建一个会话对象;当会话过期或被放弃后,服务器将终止该会话。

2)Cookies

Cookies指某些网站为了辨别用户身份,进行会话跟踪而存储在用户本地终端上的数据

1)会话维持
   当客户端第一次请求服务器时,服务器会返回一个请求头中带有Set-Cookie字段的响应给客户端,用来标记是哪个用户,客户端浏览器会把Cookies保持起来。当浏览器下次请求该网站时,浏览器会把此Cookies放到请求头一起提交给服务器,Cookies携带了会话ID信息,服务器检查该Cookies即可找到对应的会话是什么,然后再判断会话来以此辨认用户状态。
  在成功登录某个网站时,服务器会告诉客户端设置哪些Cookies信息,在后续访问页面时客户端会把Cookies发送给服务器,服务器再找到对应的会话加以判断。如果会话中的某些设置登录状态的变量时有效的,那就证明用户处于登录状态,此时返回登录之后才能查看的网页内容,浏览器进行解析就能看到。反之不行。
2)属性结构
Cookies有如下几个属性
A.name:该Cookies的名称,一旦创建,该名称便不可更改
B.Value:该Cookies的值,如果值为Unicode字符,需要为字符编码;如果值为二进制数据,则需要使用BASE64编码
C.Domain:可以访问该Cookies的域名。
D.Max Age:该Cookies 失效的时间,单位为秒,也常和Expires一起使用,可以通过它计算其有效时间。Max Age如果为正数,则该Cookies在Max Age秒后失效。如果为负数,则关闭浏览器时Cookies及失效
E.Path:该Cookie的使用路径。如果设置为/path/,则只有路径为/path/的页面可以访问该Cookie。如果设置为/,则本域名下的所有页面都能访问Cookies
F.Size字段:此Cookie的大小
G.HTTP字段:Cookie的httponly属性。此属性为true,则只有在Http头中会带有此Cookies信息。
H.Secure:该Cookies是否仅被使用安全协议传输。默认为false

3)会话也需要设置失效时间

 

 

转载于:https://www.cnblogs.com/python-road/p/11249436.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值