摘要:在瀏覽器中輸入到顯示網(wǎng)頁主要包含兩個部分網(wǎng)絡(luò)通信和頁面渲染互聯(lián)網(wǎng)內(nèi)各網(wǎng)絡(luò)設(shè)備間的通信都遵循協(xié)議,利用協(xié)議族進(jìn)行網(wǎng)絡(luò)通信時,會通過分層順序與對方進(jìn)行通信。狀態(tài)碼主要包括以下部分指示信息表示請求已接收,繼續(xù)處理。
在瀏覽器中輸入url到顯示網(wǎng)頁主要包含兩個部分: 網(wǎng)絡(luò)通信和頁面渲染
互聯(lián)網(wǎng)內(nèi)各網(wǎng)絡(luò)設(shè)備間的通信都遵循TCP/IP協(xié)議,利用TCP/IP協(xié)議族進(jìn)行網(wǎng)絡(luò)通信時,會通過分層順序與對方進(jìn)行通信。分層由高到低分別為:應(yīng)用層、傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層。發(fā)送端從應(yīng)用層往下走,接收端從數(shù)據(jù)鏈路層網(wǎng)上走
我們常見的RUL是這樣的:www.baidu.com,域名通常由3部分組成:協(xié)議 域名 端口號
涉及知識點(diǎn): 跨域
在前端進(jìn)行數(shù)據(jù)請求時,由于瀏覽器的同源策略,協(xié)議,域名,端口號有一個不同會存在跨域請求,需要進(jìn)行跨域處理,相關(guān)的跨域方法點(diǎn)擊user-gold-cdn.xitu.io/2018/11/19/…
互聯(lián)網(wǎng)上每一臺計(jì)算機(jī)的唯一標(biāo)識是它的IP地址,但是IP地址并不方便記憶。用戶更喜歡用方便記憶的網(wǎng)址去尋找互聯(lián)網(wǎng)上的其它計(jì)算機(jī),也就是上面提到的百度的網(wǎng)址。所以互聯(lián)網(wǎng)設(shè)計(jì)者需要在用戶的方便性與可用性方面做一個權(quán)衡,這個權(quán)衡就是一個網(wǎng)址到IP地址的轉(zhuǎn)換,這個過程就是DNS解析,即實(shí)現(xiàn)了網(wǎng)址到IP地址的轉(zhuǎn)換
DNS解析是一個遞歸查詢的過程。
上述圖片是查找www.google.com的IP地址過程。首先在本地域名服務(wù)器中查詢IP地址,如果沒有找到的情況下,本地域名服務(wù)器會向根域名服務(wù)器發(fā)送一個請求,如果根域名服務(wù)器也不存在該域名時,本地域名會向com頂級域名服務(wù)器發(fā)送一個請求,依次類推下去。直到最后本地域名服務(wù)器得到google的IP地址并把它緩存到本地,供下次查詢使用。從上述過程中,可以看出網(wǎng)址的解析是一個從右向左的過程: com -> google.com -> www.google.com。但是你是否發(fā)現(xiàn)少了點(diǎn)什么,根域名服務(wù)器的解析過程呢?事實(shí)上,真正的網(wǎng)址是www.google.com.,并不是我多打了一個.,這個.對應(yīng)的就是根域名服務(wù)器,默認(rèn)情況下所有的網(wǎng)址的最后一位都是.,既然是默認(rèn)情況下,為了方便用戶,通常都會省略,瀏覽器在請求DNS的時候會自動加上,所有網(wǎng)址真正的解析過程為: . -> .com -> google.com. -> www.google.com.。?
DNS緩存和DNS負(fù)載均衡
DNS存在著多級緩存,從離瀏覽器的距離排序的話,有以下幾種: 瀏覽器緩存,系統(tǒng)緩存,路由器緩存,IPS服務(wù)器緩存,根域名服務(wù)器緩存,頂級域名服務(wù)器緩存,主域名服務(wù)器緩存。
在你的chrome瀏覽器中輸入:chrome://dns/,你可以看到chrome瀏覽器的DNS緩存。
系統(tǒng)緩存主要存在/etc/hosts(Linux系統(tǒng))中:
?
真實(shí)的互聯(lián)網(wǎng)世界背后存在成千上百臺服務(wù)器,大型的網(wǎng)站甚至更多。但是在用戶的眼中,它需要的只是處理他的請求,哪臺機(jī)器處理請求并不重要。DNS可以返回一個合適的機(jī)器的IP給用戶,例如可以根據(jù)每臺機(jī)器的負(fù)載量,該機(jī)器離用戶地理位置的距離等等,這種過程就是DNS負(fù)載均衡,又叫做DNS重定向
在通過DNS域名解析后,獲取到了服務(wù)器的IP地址,在獲取到IP地址后,便會開始建立一次連接,這是由TCP協(xié)議完成的,主要通過三次握手進(jìn)行連接。
完整的HTTP請求包含請求起始行、請求頭部、請求主體三部分。
?
服務(wù)器在收到瀏覽器發(fā)送的HTTP請求之后,會將收到的HTTP報(bào)文封裝成HTTP的Request對象,并通過不同的Web服務(wù)器進(jìn)行處理,處理完的結(jié)果以HTTP的Response對象返回,主要包括狀態(tài)碼,響應(yīng)頭,響應(yīng)報(bào)文三個部分。
狀態(tài)碼主要包括以下部分:
1xx:指示信息–表示請求已接收,繼續(xù)處理。
2xx:成功–表示請求已被成功接收、理解、接受。
3xx:重定向–要完成請求必須進(jìn)行更進(jìn)一步的操作。
4xx:客戶端錯誤–請求有語法錯誤或請求無法實(shí)現(xiàn)。
5xx:服務(wù)器端錯誤–服務(wù)器未能實(shí)現(xiàn)合法的請求。
響應(yīng)頭主要由Cache-Control、 Connection、Date、Pragma等組成。
響應(yīng)體為服務(wù)器返回給瀏覽器的信息,主要由HTML,css,js,圖片文件組成。
?如果說響應(yīng)的內(nèi)容是HTML文檔的話,就需要瀏覽器進(jìn)行解析渲染呈現(xiàn)給用戶。整個過程涉及兩個方面:解析和渲染。在渲染頁面之前,需要構(gòu)建DOM樹和CSSOM樹。 ?在瀏覽器還沒接收到完整的 HTML 文件時,它就開始渲染頁面了,在遇到外部鏈入的腳本標(biāo)簽或樣式標(biāo)簽或圖片時,會再次發(fā)送 HTTP 請求重復(fù)上述的步驟。在收到 CSS 文件后會對已經(jīng)渲染的頁面重新渲染,加入它們應(yīng)有的樣式,圖片文件加載完立刻顯示在相應(yīng)位置。在這一過程中可能會觸發(fā)頁面的重繪或重排。這里就涉及了兩個重要概念:Reflow和Repaint。
?
- Reflow,也稱作Layout,中文叫回流,一般意味著元素的內(nèi)容、結(jié)構(gòu)、位置或尺寸發(fā)生了變化,需要重新計(jì)算樣式和渲染樹,這個過程稱為Reflow。
- Repaint,中文重繪,意味著元素發(fā)生的改變只是影響了元素的一些外觀之類的時候(例如,背景色,邊框顏色,文字顏色等),此時只需要應(yīng)用新樣式繪制這個元素就OK了,這個過程稱為Repaint。
所以說Reflow的成本比Repaint的成本高得多的多。DOM樹里的每個結(jié)點(diǎn)都會有reflow方法,一個結(jié)點(diǎn)的reflow很有可能導(dǎo)致子結(jié)點(diǎn),甚至父點(diǎn)以及同級結(jié)點(diǎn)的reflow。
通過四次揮手關(guān)閉連接(FIN ACK, ACK, FIN ACK, ACK)。
?
- 第一次揮手:Client發(fā)送一個FIN,用來關(guān)閉Client到Server的數(shù)據(jù)傳送,Client進(jìn)入FIN_WAIT_1狀態(tài)。
- 第二次揮手:Server收到FIN后,發(fā)送一個ACK給Client,確認(rèn)序號為收到序號+1(與SYN相同,一個FIN占用一個序號),Server進(jìn)入CLOSE_WAIT狀態(tài)。
- 第三次揮手:Server發(fā)送一個FIN,用來關(guān)閉Server到Client的數(shù)據(jù)傳送,Server進(jìn)入LAST_ACK狀態(tài)。
- 第四次揮手:Client收到FIN后,Client進(jìn)入TIME_WAIT狀態(tài),接著發(fā)送一個ACK給Server,確認(rèn)序號為收到序號+1,Server進(jìn)入CLOSED狀態(tài),完成四次揮手。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/1290.html
摘要:瀏覽器的中文數(shù)據(jù)提交給服務(wù)器,以編碼對中文編碼,當(dāng)我在讀取數(shù)據(jù)的時候,拿到的當(dāng)然是亂碼。接下來使用方式傳遞中文數(shù)據(jù),把表單的方式改成即可當(dāng)我們訪問的時候,又出現(xiàn)亂碼了于是我按照上面的方式,把對象設(shè)置編碼為試試結(jié)果還是亂碼。 什么是HttpServletRequest HttpServletRequest對象代表客戶端的請求,當(dāng)客戶端通過HTTP協(xié)議訪問服務(wù)器時,HTTP請求頭中的所有信...
摘要:比如對于的,瀏覽器實(shí)際上不知道到底是什么東西,需要查找網(wǎng)站所在服務(wù)器的地址,才能找到目標(biāo),這就是下文要說的域名解析。二域名解析當(dāng)用戶在瀏覽器中輸入后你使用的電腦會發(fā)出一個請求到本地服務(wù)器。 showImg(https://segmentfault.com/img/remote/1460000009317499?w=700&h=466); 這里markdown格式跟簡書不太一樣,排版可能...
閱讀 2942·2023-04-26 01:32
閱讀 1541·2021-09-13 10:37
閱讀 2278·2019-08-30 15:56
閱讀 1670·2019-08-30 14:00
閱讀 3043·2019-08-30 12:44
閱讀 1961·2019-08-26 12:20
閱讀 1056·2019-08-23 16:29
閱讀 3228·2019-08-23 14:44