get和post在HTTP中都表明着請求數據,其中get請求相對來講更簡單、快速,效率高些。php
get對於請求數據和靜態資源(HTML頁面和圖片),在低版本瀏覽器下都會緩存。高版本瀏覽器只緩存靜態資源,不緩存數據後端
post從服務器端推送數據(給的多,拿得少),而get是從服務器獲取數據(給的少,拿得多)瀏覽器
post請求包含跟多的請求頭,因此速度沒有get快緩存
post在真正接受數據以前會先將請求頭髮送給服務器進行確認,而後才真正發送數據安全
get請求方式服務器
btn.onclick = function(){ let xhr = new XMLHttpRequest; xhr.open('get','/get?ren='+encodeURI(txt.value),true);// // 其中url裏面get是後端給的,?後面user是先後端定義的(或者後端提供) xhr.onload = function(){ console.log(xhr.responseText); } xhr.send(); }
post請求方式app
btn.onclick = function(){ let xhr = new XMLHttpRequest; xhr.open('post','/post',true); //設置頭信息 xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded'); xhr.onload = function(){ console.log(JSON.parse(xhr.responseText)); } xhr.send('user'+txt.value); }
二者區別post
一、get比post速度塊url
二、get相對post安全性低spa
三、get有緩存,post沒有
四、get的url參數可見,post不可見
五、get請求參數會保留歷史記錄,post中參數不會保留
六、get請求數據放在url,post數據在http包體(requrest body)內
七、get只接受ASCII字符的參數數據類型,post沒有限制
八、get會被瀏覽器主動catch,post不會,須要手動設置
九、get在瀏覽器回退時無害,post會再次提交請求
十、get體積小(url字節長度每一個瀏覽器不同),post能夠無限大(根據php.ini 配置文件設定)