http請求
客戶端
請求:瀏覽器通過硬件向服務器發(fā)送的過程叫請求過程
服務器
應答:接收請求以后去數(shù)據(jù)庫中拿到相應的文件,通過PHP進行處理,處理的結果再返還給服務器,然后返還給客戶端
數(shù)據(jù)庫
http請求
(超文本傳輸協(xié)議)應用層
定義:一次請求和應答的過程叫http請求,只有在地址欄鍵入地址的時候,才能向服務器發(fā)送請求
無狀態(tài)請求
如果沒有請求的時候,客戶端和服務器就處于分離狀態(tài)
請求方式
get
post
ajax
就是一次http請求
異步javascript和XML
html 超文本標記語言
xhtml 是html和XML的過度版本
XML 可擴展的標記語言
無刷新無跳轉的進行網(wǎng)頁數(shù)據(jù)刷新
當瀏覽器向服務器發(fā)送請求時,js程序繼續(xù)向下請求
同步
等待上一步程序執(zhí)行完畢后才能進行
異步asynchronous
上一步代碼進行請求時,下面的代碼繼續(xù)進行
ajax創(chuàng)建對象
let xhr=new XMLHttpRequest(); //現(xiàn)代瀏覽器
let xhr=new ActiveXObject('Microsoft.XMLHTTP');//IE瀏覽器
//兼容處理
let xhr=window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject('Microsoft.XMLHTTP');
方法
get
- get 數(shù)據(jù)傳遞在地址欄 不安全 傳遞的數(shù)據(jù)量有限、很小
- get本身的意思就是獲取,如果想要發(fā)送數(shù)據(jù),建議采用post
//打開請求
xhr.open('get','login.php?aa=bb&cc=dd',true); //默認為true,異步
//發(fā)送請求
xhr.send(null);
//監(jiān)測事件
xhr.onreadystatechange=function(){
if(xhr.readyState==4){
if(xhr.status==200){
console.log(JSON.parse(xhr.responseText));
//接收JOSN text XML
}
}
}
post
- 數(shù)據(jù)不會在地址欄進行傳遞,安全,傳遞的數(shù)據(jù)量比較大
- post本身的意思就是送,如果要發(fā)送數(shù)據(jù),首選post
- 傳送的數(shù)據(jù)寫在
//http請求 請求頭部 請求體 響應頭 響應內(nèi)容
//用post的方法去獲取,發(fā)送數(shù)據(jù)必須設置請求頭部
xhr.setRequestHeader('content-type','application/x-www-form-urlencoded');
xhr.open('post','login.php',true);
xhr.send('user=admin&pass=123456')
upload上傳