Cookie存储在客户端,Cookie存储的数据量有限,不同的浏览器存储容量也不同,一般不超过4KB,因此Cookie只能存储一些少量的数据。
Cookie可以保持用户的登录信息,待用户下次访问同一网站时,会发现不必输入用户名和密码就已经登录了。但有一些Cookie在用户退出会话的时候就被删除了(用户也可手工删除本地Cookie),这样可以有效保护个人隐私。
Cookie在生成时会被指定一个Expire值,这就是Cookie的生存周期,在这个周期内Cookie有效,超出周期Cookie就会被清除。有些页面将Cookie的生存周期设置为0或负值,这样在关闭浏览器时就马上清除Cookie,不会记录用户信息,更加安全。
Cookie所具有的属性一般包括以下几项。
·Domain:域,表示当前Cookie属于哪个域或子域。对于服务器返回的Set-Cookie,如果没有指定Domain的值,那么其Domain的值默认为当前所提交的HTTP请求所对应的主域名。例如访问http://www.example.com,返回一个Cookie,如果没有指名Domain的值,那么其值为默认的www.example.com。
·Path:表示Cookie的所属路径。
·Expire time/Max-age:Cookie的有效期。Expire time的值是一个时间,过了这个时间该Cookie就失效了;或者是用Max-age指定当前Cookie在多长时间之后失效。如果服务器返回的一个Cookie没有指定其Expire time,那么表明此Cookie的有效期只是当前的Session,即Session Cookie,当前Session会话结束后就过期了。对应的,当关闭(浏览器中)该页面的时候,此Cookie就被浏览器删除了。
·secure:表示该Cookie只能用HTTPS传输。一般用于包含认证信息的Cookie,要求传输此Cookie的时候必须用HTTPS传输。
·httponly:表示此Cookie必须用于HTTP或HTTPS传输。这意味着浏览器脚本(如JavaScript中)是不允许访问操作Cookie的。
对于一些需要输入验证码才能登录的网站,可以采用Cookie来解决问题。
·获取Cookies的方法:get_cookies();
·获取指定name的Cookie:driver.get_cookie(name);
·清除Cookie:delete_cookie()。