表單提交中Get和Post方式的區別
1. get是從服務器上獲取數據,post是向服務器傳送數據。
2. get是把參數數據隊列加到提交表單的ACTION屬性所指的URL中,值和表單內各個字段一一對應,在URL中可以看到。post是通過HTTP post機制,將表單內各個字段與其內容放置在HTML HEADER內一起傳送到ACTION屬性所指的URL地址。用戶看不到這個過程。
3. 對于get方式,服務器端用Request.QueryString獲取變量的值,對于post方式,服務器端用Request.Form獲取提交的數據。
4. get傳送的數據量較小,不能大于2KB。post傳送的數據量較大,一般被默認為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB。
5. get安全性非常低,post安全性較高。
在Form元素的語法中,EncType表明提交數據的格式?
用 Enctype 屬性指定將數據回發到服務器時瀏覽器使用的編碼類型。?
下邊是說明:?
application/x-www-form-urlencoded: 窗體數據被編碼為名稱/值對。這是標準的編碼格式。?
multipart/form-data: 窗體數據被編碼為一條消息,頁上的每個控件對應消息中的一個部分。?
text/plain: 窗體數據以純文本形式進行編碼,其中不含任何控件或格式字符。
補充
form的enctype屬性為編碼方式,常用有兩種:application/x-www-form-urlencoded和multipart/form-data,默認為application/x-www-form-urlencoded。?
當action為get時候,瀏覽器用x-www-form-urlencoded的編碼方式把form數據轉換成一個字串(name1=value1&name2=value2...),然后把這個字串append到url后面,用?分割,加載這個新的url。?
當action為post時候,瀏覽器把form數據封裝到http body中,然后發送到server。?
如果沒有type=file的控件,用默認的application/x-www-form-urlencoded就可以了。?
但是如果有type=file的話,就要用到multipart/form-data了。瀏覽器會把整個表單以控件為單位分割,并為每個部分加上Content-Disposition(form-data或者file),Content-Type(默認為text/plain),name(控件name)等信息,并加上分割符