Cookie,简单来说就是用户通过客户端访问服务器端的过程中,被服务器端创建保存在客户端的一段Code,只适用于web中。通常保存在硬盘这个文件下面C:Documents and SettingsAdministratorCookies,所有访问的web网站都会被记录在里面。图来是Cookie的创建机制:
Cookie是利用了网页代码中的HTTP头信息进行传递的,浏览器的每一次网页请求,都可以伴随Cookie传递,例如,浏览器的打开或刷新网页操作。服务器将Cookie添加到网页的HTTP头信息中,伴随网页数据传回到你的浏览器,浏览器会根据你电脑中的Cookie设置选择是否保存这些数据。如果浏览器不允许Cookie保存,则关掉浏览器后,这些数据就消失。Cookie在电脑上保存的时间是不一样的,这些都是由服务器的设置不同决定得。Cookie有一个Expires(有效期)属性,这个属性决定了Cookie的保存时间,服务器可以通过设定Expires字段的数值,来改变Cookie的保存时间。如果不设置该属性,那么Cookie只在浏览网页期间有效,关闭浏览器,这些Cookie自动消失,绝大多数网站属于这种情况。通常情况下,Cookie包含Server、Expires、Name、value这几个字段,其中对服务器有用的只是Name和value字段,Expires等字段的内容仅仅是为了告诉浏览器如何处理这些Cookies。注意,在实际传递过程中这个Cookie的值是经过了URLEncode方法的URL编码操作的。
Cookie的生命周期就是刚提到的Expires这个值,通常我们在登录网站的时候会看到有一个选项让我们选择保持登录状态1天、1个月、半年和1年,根据不同用户需求选择保存登录状态的时间,也就是Cookie保存了用户登录的信息,下次用户开启浏览器不用登录直接以之前的用户身份进入并访问网站。
Cookie内容很多,作为一个专业的开发人员需要去深入学习并使用它,同样测试也需要足够的去了解它,在测试过程中Cookie是一个比较重要的测试点,特别是涉及到一些安全性方面的测试,Cookie在保存用户登录状态的同时也给用户带来巨大的潜在风险,但目前解决Cookie风险的最好办法就是不保存Cookie信息。特别是在一些涉及网上银行、网上支付等方面,Cookie技术的使用将变得非常小心,这也给我们测试带来了巨大地挑战。