先簡單的介紹一下get與post
l Get:是以實體的方式得到由請求URI所指定資源的信息,如果請求URI只是一個數據產生過程,那麼最終要在響應實體中返回的是處理過程的結果所指向的資源,而不是處理過程的描述。
l Post:用來向目的服務器發出請求,要求它接受被附在請求後的實體,並把它當作請求隊列中請求URI所指定資源的附加新子項,Post被設計成用統一的方法實現下列功能:
1. 對現有資源的解釋
2. 向電子公告欄、新聞組、郵件列表或類似討論組發信息。
3. 提交數據塊
4. 通過附加操作來擴展數據庫
從從上面描述可以看出,Get是向服務器發索取數據的一種請求;而Post是向服務器提交數據的一種請求,要提交的數據位於信息頭後面的實體中。
HTTP請求:get與post方法的區別
相同點;
l Get與post(對於“post”除非相應裏有cache-control或者expires頭域指示其相應不可緩存)請求的相應是可緩存的;
不同點:
1. Get是從服務器上獲取數據,post是向服務器傳送數據
2. Get是把參數數據隊列加到提交表單的action屬性所指定的URL中,值和表單中各個字段一一對應,在URL中可以看到,post是通過HTTP post機制,將表單內各個字段與其內容放置在html header內一起傳送到action屬性所指的URL地址,用戶看不到這個過程;
3. get傳送的數據量較小,不能大於2kb;post傳送的數據量較大,一般被默認爲不受限制的。但理論上,IIS4中最大量爲80kb,IIs5中爲100kb;
4. get安全性非常低;post安全性較高;
5. get適用於多請求,而保留post僅用於更新站點;
6. 在form提交的時候,如果不指定method,則默認爲get請求,form中提交的數據將會附加在url之後,以?與URL分開。字母數字字符原樣發送,但空格轉換爲“+”號,其它符號轉換爲%xx,其中xx爲該符號爲16進製表示的ASCII(或ISO Latin-1)值;
7. get請求提交的數據放置在HTTP請求協議頭中,而post提交的數據則放在實體數據數據中;
在表單中適用“post”和“get”區別
在form裏面,可以適用post也可以適用get。它們都是method的合法取值。但是,post和gei方法在適用上至少兩點不同;
1. get方法通過URL請求來傳遞用戶的輸入。Post方法通過另外的形式。
2. get方式的提交需要用Request.QueryString來取得變量的值,而post方式提交時,必須通過Request.Form來訪問提交的內容