cookie(储存在用户本地终端上的数据),它是HTTP协议中的重要部分之一。一般咱们用脚本语言如Javascript或者服务端语言如java等读写cookie。其格式为:key=value,若是是多个键值对,则用分号(;)进行分隔,可是该文件也不能无限制的存储,是有数量和大小限制的!【网上找的资料,未进行验证,仅仅示意有限制,具体的能够参考HTTP协议标准和各浏览器的说明】html
1、浏览器容许每一个域名所包含的cookie数:java
Microsoft指出InternetExplorer8增长cookie限制为每一个域名50个,但IE7彷佛也容许每一个域名50个cookie。web
Firefox每一个域名cookie限制为50个。数据库
Opera每一个域名cookie限制为30个。浏览器
Safari/WebKit貌似没有cookie限制。可是若是cookie不少,则会使header大小超过服务器的处理的限制,会致使错误发生。服务器
注:“每一个域名cookie限制为20个”将再也不正确!cookie
2、当不少的cookie被设置,浏览器如何去响应。app
除Safari(能够设置所有cookie,无论数量多少),有两个方法:分布式
最少最近使用(leastrecentlyused(LRU))的方法:当Cookie已达到限额,自动踢除最老的Cookie,以使给最新的Cookie一些空间。Internet Explorer和Opera使用此方法。oop
Firefox很独特:虽然最后的设置的Cookie始终保留,但彷佛随机决定哪些cookie被保留。彷佛没有任何计划(建议:在Firefox中不要超过Cookie限制)。
3、不一样浏览器间cookie总大小也不一样:
Firefox和Safari容许cookie多达4097个字节,包括名(name)、值(value)和等号。
Opera容许cookie多达4096个字节,包括:名(name)、值(value)和等号。
Internet Explorer容许cookie多达4095个字节,包括:名(name)、值(value)和等号。
注:多字节字符计算为两个字节。在全部浏览器中,任何cookie大小超过限制都被忽略,且永远不会被设置。
------摘自 http://www.cnblogs.com/henryhappier/archive/2011/03/03/1969564.html
一般获取数据是使用表单来进行的,也就是咱们一般注册、登陆、发表博客、微博等须要填写数据并提交的东西。获取数据的HTML标签其实颇有限,只有如下几种:
input[text]、input[password]、input[checkbox]、input[radio]、input[file]、input[hidden]、select、textarea
没呢?没了!就只有上面这些,其余的标签也能够在form中使用,可是标签中的数据是不会传递到后台中去的(此外,一旦将上述标签设置为disabled="disabled",标签的值也不会传递回去,后台获取的是null)。可想而知,表单可使用的标签明显不够用,程序设计者就利用这些变换出各式各样的表单,如combox等,实在是佩服!!
一般有这些标签也仍是无法把数据收集起来,由于这些标签还须要放在f<form>标签之中,form标签中常用的属性是id、name、action、method、enctype等,其中method和HTTP协议中的请求头的方法匹配,action是用来设置处理表单的动做执行者,enctype 属性规定在发送到服务器以前应该如何对表单数据进行编码。默认地,表单数据会编码为 "application/x-www-form-urlencoded"。就是说,在发送到服务器以前,全部字符都会进行编码(空格转换为 "+" 加号,特殊符号转换为 ASCII HEX 值)。当须要进行文件上传时,必须设置为multipart/form-data。
放置在form标签之中提交的数据,一般都被格式化为name=value的形式传递给后台进行处理,所以表单的标签是必须有name属性的,并且name属性的值就是传递到后台的name。注:固然,若是使用get的方式,也可使用js去操做地址栏的数据去获取。
另一个常常被单独抽取出来做为一个问题来进行分析和讨论的就是——文件上传。其实纯HTML是提供了此功能,可是无奈用户体验效果太差,所以常常是被替换掉了。关于文件上传后台处理问题涉及如下几个问题:一、扩展名校验和限制;二、大小校验和限制;三、存储路径和方式等。扩展名校验和限制、大小校验和限制能够经过前台js或者后台代码进行判断,一般还应该检测web程序运行容器的限制!对于存储路径和方式的问题,可使用如下几个方案:一、文件存储到web所在系统的文件系统中;二、存储到数据库中;三、存储在如今流行的hadoop中;四、采用ftp/nfs的方式进行分布式存储。
OK,完毕!