最早接觸GET和POST是在學習Html中的form標籤。
<form name="login" method="get" action="#" target="_blank">
<input type="text" value=""/>
</form>
在Ajax學習中無可避免再次遇見。所以做個淺顯的總結。
相同點:
GET和POST是HTTP協議中的兩種發送請求的方法。
HTTP是基於TCP/IP的關於數據如何在萬維網中如何通信的協議。
HTTP的底層是TCP/IP。
所以GET和POST的底層也是TCP/IP,GET/POST都是TCP鏈接。
不同點:
get | post | |
---|---|---|
傳送方式 | 地址欄傳輸 | 報文傳輸 |
請求參數位置 | URL | Request body(請求體) |
請求參數長度 | URL傳參有長度限制 | 無限制 |
編碼方式 | URL編碼 | 支持多種編碼方式 |
數據類型 | 只能是ASCII碼 | 無限制 |
保留 | 保留在瀏覽器歷史記錄 | 不保留 |
安全性 | 明文傳輸 | 不可見 |
傳送數據量 | 小 | 默認無限制 |
執行效率 | 高 | 低 |
TCP數據包 | 1個 | 2個 |
過程 | header和data一起發送,服務器響應200 | 先發送header,響應100 continue,再發送data,再響應200 |