get和post的區別
-
get和post都是http協議中的一種請求方式,不同的請求方式有不同的特點,工作模式也不一樣
-
get請求沒有請求正文部分,而post有,所以get方式不能使用正文提交數據,但是可以使用queryString的方式來提交,注意:queryString是url的一部分,和請求方式無關,所以不論是什么請求方式都是可以有queryString的,需要再次注意的是,queryString的長度(url的長度)是有限制的,所以如果請求方式是get,那么通過queryString提交的數據的話,注意長度不要超出url的長度限制范圍,(范圍:2000多個,不同瀏覽器的url長度限制不一樣,標准瀏覽器一般要再多點)
-
使用queryString方式傳輸數據的時候需要對傳輸的數據進行轉碼(url編碼)-encodeURI()
-
使用http的正文發送(post),那么是通過send方法把數據添加到正文中,同時還需要設置發送頭信息,設置content-type的類型,這個類型必須和后端的解析類型保持一致,當數頭信息設置成application/x-www-form-urlencoded的時候,不需要手動進行編碼
-
get方式會緩存頁面,需要通過隨機數或時間戳解決緩存問題,而post不會緩存所以沒有該問題
-
因為get方式會緩存,同時緩存文件名中有提交的數據,所以get方式傳遞數據有一定隱私安全上的隱患,所以敏感數據通過post提交
異步同步
異步、同步、阻塞、非阻塞
異步和同步:被請求人的消息通知機制
異步:當被請求人處理完成事情以后會主動通知(事件通知,回調等方式)
同步:當被請求人處理完成事情以后不會主動通知,需要請求的人主動輪詢
阻塞和非阻塞:請求人事務處理機制
ajax
- 異步非阻塞