1.Cookie的定义和分类,及优缺点

       定义、分类“Cookie”定义于RFC2109(网络协议)。它是网景公司以前雇员Lou Montulli在1993年3月的一大创造和发明。在“Cookie”的概念界定上,IT业界精英们没有分歧。“Cookie”定义如下:Cookie,是指某些网站为了辨别用户身份而储存在用户本地终端上的数据(通常经过加密)。但是,在是否应当保留“Cookies”上分歧颇大、水火不容。
        优点:  由于“Cookie”是网站服务器存储在客户端硬盘中的一些被未来使用(调用)的信息,所以应当保留不应“拒绝”更不可“禁用”(最低限也要设定一定的保留期限),这有助于下次再浏览该网站时会加快浏览访问速度。更重要的是,有利于进行脱机浏览以节约上网费用。
       缺点在病毒、木马肆虐横行的网络世界,Cookies挂马、挂毒已经严重危及用户的隐私和安全。另外,保存过多的Cookies会成为有碍系统运行流畅的垃圾。因此保留有害无益。目前有些国家(如:瑞典)已经通过cookie立法,要求网站必须指导用户如何禁用“Cookie”。
cookie的结构,简单地说:cookie是以键值对的形式保存的,即key=value的格式。各个cookie之间一般是以“;”分隔。
2.在程序中如何实现Cookie信息的设置,读取和删除

答:JS设置cookie
假设在A页面中要保存变量username的值("jack")到cookie中,key值为name,则相应的JS代码为:
document.cookie="name="+username;

JS读取cookie
假设cookie中存储的内容为:name=jack;password=123
则在B页面中获取变量username的值的JS代码如下:
var username=document.cookie.split(";")[0].split("=")[1];
//JS操作cookies方法
//js写cookies
function setCookie(name,value)
{
var Days = 30;
var exp = new Date();
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
var strsec = getsec(time);
var exp = new Date();
exp.setTime(exp.getTime() + strsec*1);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}

//js读取cookies
function getCookie(name)
{
var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
if(arr=document.cookie.match(reg))
return (arr[2]);
else
return null;
}

//js删除cookies
function delCookie(name)
{
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval=getCookie(name);
if(cval!=null)
document.cookie= name + "="+cval+";expires="+exp.toGMTString();
}
//使用示例
setCookie("name","hayden");
alert(getCookie("name"));
//如果需要设定自定义过期时间
//那么把上面的setCookie 函数换成下面两个函数就ok;
//程序代码
function setCookie(name,value,time)
{
var strsec = getsec(time);
var exp = new Date();
exp.setTime(exp.getTime() + strsec*1);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}

function getsec(str)
{
alert(str);
var str1=str.substring(1,str.length)*1;
var str2=str.substring(0,1);
if (str2=="s")
 {return str1*1000;}
else if (str2=="h")
  {return str1*60*60*1000;}
else if (str2=="d")
  {return str1*24*60*60*1000;}
}
//这是有设定过期时间的使用示例:
//s20是代表20秒
//h是指小时,如12小时则是:h12
//d是天数,30天则:d30
setCookie("name","hayden","s20");

3.查找一下面向对象编程思想及其相关内容,并更新在自己的博客上

      答:看了很多面向对象的定义,绝对这句最妥切,面向对象的web开发是面向对象开发的一种,我们要离开语言谈思想,如下:
从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式,强调直接以问题域(现实世界)中的事物为中心来思考问题,
认识问题,并根据这些事物的本质特点,把它们抽象地表示为系统中的对象,作为系统的基本构成单位(而不是用一些与现实世界中的事物相关比较远,并且没有对应关系的其
它概念来构造系统)。这可以使系统直接地映射问题域,保持问题域中事物及其相互关系的本来面貌。

4.如果给一个单位做相关的软件,你认为最重要的是需要得到谁的支持,为什么?

   答:同事,只有同事支持我,我们有一样的观念才能共同完成一个理想的软件

posted on 2014-05-29 11:17  徐晨  阅读(221)  评论(0编辑  收藏  举报