複習前面的(資料相關)
什麼時候請求資料:
>以前我們的資料都是寫死的,在真實的開發中,需要通過使用者的操作給使用者想要的資料
怎麼請求?
1.要麼用那5步
let xhr = new XMLHttpRequest
/* get方式請求,其實就是url的方式請求
協議+域名+埠+?+查詢資訊+hash...
這裡的url是拼接完整的 */
xxx.onclick = function(){
xhr.open('get',url,true);
xhr.onreadystatechange = function(){
xhr.readyState //能夠監聽到5步,每一步分成->0~4(分別代表什麼意思?)
//0:請求未初始化
//1:伺服器連線已建立
//2:請求已接收
//3:請求處理中
//4:請求已完成,且響應已就緒(http狀態碼)
};
xhr.send();//傳送
}
//第二種寫法
xxx.onclick = function(){
xhr.open('get',url,true);
xhr.onload = function(){
xhr.readyState
};
xhr.send();
}
http常見的狀態碼:200/404/403...
101:切換協議 (比如:http->websocket)
200:客戶端成功接收到伺服器端的返回資料
301:永久重定向,資源(網頁等)被永久轉到其它URL
302:臨時重定向
304:載入快取
307:臨時重定向,針對的是http傳輸協議
400:訪問引數錯誤
401:沒有訪問許可權
403:伺服器接收到請求,但是拒絕處理。(一般見於檔案或目錄的許可權設定)
404:請求的地址(資源)不存在
413:客戶端請求的檔案超過服務端的最大承載容量
500:未知的服務端錯誤
503:伺服器超過最大的負荷
乙太網:分為兩個部分:1.標頭:誰接收、誰傳送、資料型別等。 2.資料 (head data)
MAC:就是接收和傳送的網絡卡地址
廣播:在傳送MAC地址的時候,會向本網路的所有計算機發送資料,這些計算機接收到資訊之後,會判斷MAC地址和自己是否匹配,匹配就接收,不匹配就丟棄。
網路地址:它的作用是引進一套新的地址,使得我們能夠區分不同的計算機是否屬於同一個子網路,這套地址就叫做“網路地址”,簡稱“網站”。
(確定計算機所在的子網路,在通過MAC地址找到具體的某臺計算機)
IP:IPv4->我們用分成四段的十進位制數表示IP地址,從0.0.0.0 ~ 255.255.255.255
分為兩個部分:1.代表網路 2.代表主機
Ip資料包也分為“標頭”和“資料”兩部分(head data)
IP資料包整體作為乙太網的資料部分,進行傳送。(head head data)
所謂“子網掩碼”就是代表子網路特徵(只要在同一個網路下,子網掩碼一定一樣)
ARP協議:當傳送資料的時候,2臺計算機在同一網路下(能獲取到IP地址,不能獲取MAC地址),而ARP協議,可以通過IP地址找到MAC地址
埠(port):“傳輸層”的功能,就是建立“埠到埠”的通訊。相比之下,“網路層”的功能是建立“主機到主機”的通訊。只要確定主機和埠,我們就能實現程式之間的交流。
UDP(協議)埠:有IP、發出埠和接收埠、MAC + 資料體(head head head data)
TCP協議:簡單理解是有(確認接收)機制的UDP協議,可以知道對方已接收資料包,如果沒收到就再次傳送。
TCP協議能夠確保資料不會遺失。它的缺點是過程複雜、實現困難、消耗較多的資源。
post請求過程:1.瀏覽器請求tcp連線。2.伺服器答應進行tcp連線。3.瀏覽器確認,併發送post請求頭。4.伺服器返回100 Continue 響應。5.瀏覽器傳送資料。6.伺服器返回200 OK 響應
get請求過程:1.瀏覽器請求tcp連線。2.伺服器答應進行tcp連線。3.瀏覽器確認,併發送post請求頭和資料。4.伺服器返回200 OK響應。
2.fatch
3.第三方封裝的:(1)jquery的$.ajax (2)axios