一.請求方式
所有的請求都可以給服務器傳遞內容,也可以從服務器獲取內容。
GET:從服務器獲取數據(給的少拿的多)
POST:向服務器推送數據(給的多拿的少)
DELETE:刪除服務器的一些內容
PUT:向服務器存放一些內容
HEAD:只請求頁面的頭部
TRACE(或OPTIONS):發送一個探測性請求,如果返回了信息說明建立了連接
二.GET VS POST
1.傳遞給服務器信息的方式不一樣
GET:基於URL地址“問號傳參”,POST基於“請求主體”把信息傳給服務器。(GET一般用於拿,POST一般用於推送內容)
2.GET不安全,POST相對安全(記住是相對)
因為GET是基於“問號傳參”把信息傳遞給服務器,容易被駭客進行URL劫持。POST是基於請求主體傳遞的,相對來說不好被劫持。所以涉及到登錄注冊等信息應使用POST。
3.GET會產生不可控制的緩存,POST不會
不可控:這是瀏覽器自主記憶的緩存,我們無法基於js控制,項目中會將去掉這個緩存。
GET請求產生緩存的原因:連續多次向相同的地址(傳遞的參數也是一致的)發送請求,瀏覽器會把之前獲取的數據從緩存中拿到,導致無法從服務器獲取最新的數據(POST不會)。
解決方案:
、、、 xhr.open("GET",`/temp/list?lx=100$_=${new Date().getTime()}`); //==>在末尾添加一個隨機數使每次請求的地址都不一致,從而阻止緩存的產生(使用_屬性名保證不與其他屬性名沖突),根本上不是等它產生了緩存采取處理它,而是從請求入手保證不產生緩存 、、、