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就只發送一次。瀏覽器

相關文章
相關標籤/搜索