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,完畢!