天天看點

get和post的差別

GET和POST是HTTP協定中定義的兩種發送請求的方法。HTTP是基于TCP/IP的關于資料如何在網絡中通信的協定。GET和POST本質上就是TCP連結,并無差别。但是由于HTTP的規範和浏覽器/伺服器的限制,導緻他們在應用過程中展現出一些不同:

①、GET是從指定的伺服器中擷取資料;POST是送出表單資料給指定的伺服器處理

②、GET請求的資料會附在URL之後,以?分割URL和傳輸資料,多個參數之間以&相連;POST方式将表單内各個字段和内容放置在HTML HEADER中一起傳送到Action屬性所指定的URL位址,使用者是看不到這個過程的

③、GET方式送出的資料最多隻能是1024位元組,理論上POST沒有限制,可傳較大量的資料

④、服務端擷取GET請求參數用Request.QueryString,擷取POST請求參數用Request.Form

⑤、GET請求會被浏覽器主動cache,而POST不會,除非手動設定。

⑥、GET隻接受ASCII碼的資料類型參數,而POST對參數的資料類型沒有限制。

⑦、POST的安全性要比GET的安全性高。

 GET和POST一個重大差別:GET産生一個TCP資料包;POST産生兩個TCP資料包。對于GET方式的請求,浏覽器會把http header和data一并發送出去,伺服器響應200(傳回資料);而對于POST,浏覽器先發送http header,伺服器響應100之後浏覽器再發送data,伺服器響應200(傳回資料)。但是并不是所有浏覽器都會在POST中發送兩次包,Firefox就隻發送一次。

繼續閱讀