摘要:會(huì)通過(guò)建立起一個(gè)到服務(wù)器的連接通道,當(dāng)本次請(qǐng)求需要的數(shù)據(jù)完畢后,會(huì)立即將連接斷開(kāi),這個(gè)過(guò)程是很短的。這三個(gè)部分以作為分隔符。最后一個(gè)消息頭有兩個(gè),用來(lái)表示消息頭部的結(jié)束。但是這并不代表建立在協(xié)議之上的應(yīng)用程序就無(wú)法維持狀態(tài)。
來(lái)來(lái)來(lái)
對(duì),我就是騙你進(jìn)來(lái)的。嘿嘿嘿... 既然來(lái)了就看看再走嘛
作為一個(gè)學(xué)通信出身的前端,說(shuō)道http、tcp什么的,算是到了我的領(lǐng)域了。(我會(huì)告訴你我上課凈睡覺(jué)了,啥也沒(méi)學(xué)到嗎?)這次給大家講講http,提高水平、豐富知識(shí)。(要不是為了面試,誰(shuí)會(huì)管什么ttp呀,對(duì)我是就這么膚淺)
TCP要說(shuō)http就繞不開(kāi)tcp,TCP協(xié)議對(duì)應(yīng)于傳輸層,而HTTP協(xié)議對(duì)應(yīng)于應(yīng)用層,從本質(zhì)上來(lái)說(shuō),二者沒(méi)有可比性。但是,http是基于tcp協(xié)議的。
TCP/IP 協(xié)議分層模型物理層將二進(jìn)制的0和1和電壓高低,光的閃滅和電波的強(qiáng)弱信號(hào)進(jìn)行轉(zhuǎn)換
鏈路層代表驅(qū)動(dòng)
網(wǎng)絡(luò)層
使用 IP 協(xié)議,IP 協(xié)議基于 IP 轉(zhuǎn)發(fā)分包數(shù)據(jù)
IP 協(xié)議是個(gè)不可靠協(xié)議,不會(huì)重發(fā)
IP 協(xié)議發(fā)送失敗會(huì)使用ICMP 協(xié)議通知失敗
ARP 解析 IP 中的 MAC 地址,MAC 地址由網(wǎng)卡出廠提供
IP 還隱含鏈路層的功能,不管雙方底層的鏈路層是啥,都能通信
傳輸層
通用的 TCP 和 UDP 協(xié)議
TCP 協(xié)議面向有連接,能正確處理丟包,傳輸順序錯(cuò)亂的問(wèn)題,但是為了建立與斷開(kāi)連接,需要至少7次的發(fā)包收包,資源浪費(fèi)
UDP 面向無(wú)連接,不管對(duì)方有沒(méi)有收到,如果要得到通知,需要通過(guò)應(yīng)用層
會(huì)話層以上分層
TCP/IP 分層中,會(huì)話層,表示層,應(yīng)用層集中在一起
網(wǎng)絡(luò)管理通過(guò) SNMP 協(xié)議
劃重點(diǎn)了?。嬖囎畛?wèn)的啊)TCP三次握手和四次揮手?
被問(wèn)爛了的問(wèn)題了,這里不詳細(xì)講了,三次握手:
客戶端–發(fā)送帶有SYN標(biāo)志的數(shù)據(jù)包–一次握手–服務(wù)端
服務(wù)端–發(fā)送帶有SYN/ACK標(biāo)志的數(shù)據(jù)包–二次握手–客戶端
客戶端–發(fā)送帶有帶有ACK標(biāo)志的數(shù)據(jù)包–三次握手–服務(wù)端
四次揮手:
客戶端-發(fā)送一個(gè)FIN,用來(lái)關(guān)閉客戶端到服務(wù)器的數(shù)據(jù)傳送
服務(wù)器-收到這個(gè)FIN,它發(fā)回一個(gè)ACK,確認(rèn)序號(hào)為收到的序號(hào)加1 。和SYN一樣,一個(gè)FIN將占用一個(gè)序號(hào)
服務(wù)器-關(guān)閉與客戶端的連接,發(fā)送一個(gè)FIN給客戶端
客戶端-發(fā)回ACK報(bào)文確認(rèn),并將確認(rèn)序號(hào)設(shè)置為收到序號(hào)加1
還不懂的童鞋,去找別人的文章好好看看!
TCP和UDP的區(qū)別?
仔細(xì)閱讀上面?zhèn)鬏攲永飳懙膬?nèi)容,懂了嗎?(不懂?不懂背下來(lái)啊,混蛋?。?br>
我們微信聊天時(shí)候經(jīng)常會(huì)有這種情況。
是不是感同身受,這種情況就是對(duì)方用了TCP協(xié)議來(lái)聊天,要經(jīng)過(guò)--在嗎?--在--巴拉巴拉,才能成功的傳遞信息。
而如果對(duì)方使用UDP,則會(huì)有事直接說(shuō),不管我收沒(méi)收到。(以后找我請(qǐng)用UDP協(xié)議,著急直接打電話?。?/p>
HTTP
Http協(xié)議是建立在TCP協(xié)議基礎(chǔ)之上的,當(dāng)瀏覽器需要從服務(wù)器獲取網(wǎng)頁(yè)數(shù)據(jù)的時(shí)候,會(huì)發(fā)出一次Http請(qǐng)求。Http會(huì)通過(guò)TCP建立起一個(gè)到服務(wù)器的連接通道,當(dāng)本次請(qǐng)求需要的數(shù)據(jù)完畢后,Http會(huì)立即將TCP連接斷開(kāi),這個(gè)過(guò)程是很短的。所以Http連接是一種短連接,是一種無(wú)狀態(tài)的連接。
所謂的無(wú)狀態(tài),是指瀏覽器每次向服務(wù)器發(fā)起請(qǐng)求的時(shí)候,不是通過(guò)一個(gè)連接,而是每次都建立一個(gè)新的連接。如果是一個(gè)連接的話,服務(wù)器進(jìn)程中就能保持住這個(gè)連接并且在內(nèi)存中記住一些信息狀態(tài)。而每次請(qǐng)求結(jié)束后,連接就關(guān)閉,相關(guān)的內(nèi)容就釋放了,所以記不住任何狀態(tài),成為無(wú)狀態(tài)連接。
http傳輸流無(wú)恥盜圖
發(fā)送端在層與層間傳輸數(shù)據(jù)時(shí),沒(méi)經(jīng)過(guò)一層都會(huì)被加上首部信息,接收端每經(jīng)過(guò)一層都會(huì)刪除一條首部
又來(lái)劃重點(diǎn)了啊HTTP的英文全稱?
開(kāi)玩笑的,這個(gè)顯然不是重點(diǎn),但是不排除有人會(huì)去問(wèn),還是要知道的:
超文本傳輸協(xié)議(HyperText Transfer Protocol)
狀態(tài)碼?
狀態(tài)碼就那些,常用的記住就行了:
2XX 成功
200 OK,表示從客戶端發(fā)來(lái)的請(qǐng)求在服務(wù)器端被正確處理
204 No content,表示請(qǐng)求成功,但響應(yīng)報(bào)文不含實(shí)體的主體部分
206 Partial Content,進(jìn)行范圍請(qǐng)求
3XX 重定向
301 moved permanently,永久性重定向,表示資源已被分配了新的 URL
302 found,臨時(shí)性重定向,表示資源臨時(shí)被分配了新的 URL
303 see other,表示資源存在著另一個(gè) URL,應(yīng)使用 GET 方法丁香獲取資源
304 not modified,表示服務(wù)器允許訪問(wèn)資源,但因發(fā)生請(qǐng)求未滿足條件的情況
307 temporary redirect,臨時(shí)重定向,和302含義相同
4XX 客戶端錯(cuò)誤
400 bad request,請(qǐng)求報(bào)文存在語(yǔ)法錯(cuò)誤
401 unauthorized,表示發(fā)送的請(qǐng)求需要有通過(guò) HTTP 認(rèn)證的認(rèn)證信息
403 forbidden,表示對(duì)請(qǐng)求資源的訪問(wèn)被服務(wù)器拒絕
404 not found,表示在服務(wù)器上沒(méi)有找到請(qǐng)求的資源
5XX 服務(wù)器錯(cuò)誤
500 internal sever error,表示服務(wù)器端在執(zhí)行請(qǐng)求時(shí)發(fā)生了錯(cuò)誤
503 service unavailable,表明服務(wù)器暫時(shí)處于超負(fù)載或正在停機(jī)維護(hù),無(wú)法處理請(qǐng)求
HTTP協(xié)議格式?
HTTP的請(qǐng)求和響應(yīng)的消息協(xié)議是一樣的,分為三個(gè)部分,起始行、消息頭和消息體。這三個(gè)部分以CRLF作為分隔符。最后一個(gè)消息頭有兩個(gè)CRLF,用來(lái)表示消息頭部的結(jié)束。
HTTP請(qǐng)求的起始行稱為請(qǐng)求行,形如GET /index.html HTTP/1.1
HTTP響應(yīng)的起始行稱為狀態(tài)行,形如200 ok
消息頭部有很多鍵值對(duì)組成,多個(gè)鍵值對(duì)之間使用CRLF作為分隔符,也可以完全沒(méi)有鍵值對(duì)。形如Content-Encoding: gzip
消息體是一個(gè)字符串,字符串的長(zhǎng)度是由消息頭部的Content-Length鍵指定的。如果沒(méi)有Content-Length字段說(shuō)明沒(méi)有消息體,譬如GET請(qǐng)求就是沒(méi)有消息體的,POST請(qǐng)求的消息體一般用來(lái)放置表單數(shù)據(jù)。GET請(qǐng)求的響應(yīng)返回的頁(yè)面內(nèi)容也是放在消息體里面的。我們平時(shí)調(diào)用API返回的JSON內(nèi)容都是放在消息體里面的。
HTTP的無(wú)狀態(tài)性?
所謂HTTP協(xié)議的無(wú)狀態(tài)性是指服務(wù)器的協(xié)議層無(wú)需為不同的請(qǐng)求之間建立任何相關(guān)關(guān)系,它特指的是協(xié)議層的無(wú)狀態(tài)性。但是這并不代表建立在HTTP協(xié)議之上的應(yīng)用程序就無(wú)法維持狀態(tài)。應(yīng)用層可以通過(guò)會(huì)話Session來(lái)跟蹤用戶請(qǐng)求之間的相關(guān)性,服務(wù)器會(huì)為每個(gè)會(huì)話對(duì)象綁定一個(gè)唯一的會(huì)話ID,瀏覽器可以將會(huì)話ID記錄在本地緩存LocalStorage或者Cookie,在后續(xù)的請(qǐng)求都帶上這個(gè)會(huì)話ID,服務(wù)器就可以為每個(gè)請(qǐng)求找到相應(yīng)的會(huì)話狀態(tài)。
輸入url到頁(yè)面加載都發(fā)生了什么事情?(最最常問(wèn)的來(lái)了)
輸入地址
瀏覽器查找域名的 IP 地址
這一步包括 DNS 具體的查找過(guò)程,包括:瀏覽器緩存->系統(tǒng)緩存->路由器緩存...
瀏覽器向 web 服務(wù)器發(fā)送一個(gè) HTTP 請(qǐng)求
服務(wù)器的永久重定向響應(yīng)(從 http://example.com 到 http://www.example.com)
瀏覽器跟蹤重定向地址
服務(wù)器處理請(qǐng)求
服務(wù)器返回一個(gè) HTTP 響應(yīng)
瀏覽器顯示 HTML
瀏覽器發(fā)送請(qǐng)求獲取嵌入在 HTML 中的資源(如圖片、音頻、視頻、CSS、JS等等)
. 瀏覽器發(fā)送異步請(qǐng)求
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/94326.html
摘要:小哥哥小姐姐我有一份面試指南你要嗎可以當(dāng)做參考文章看計(jì)算機(jī)網(wǎng)絡(luò)之面試常考附加一些重要的知識(shí)點(diǎn)三次握手和四次揮手面試常客為了準(zhǔn)確無(wú)誤地把數(shù)據(jù)送達(dá)目標(biāo)處,協(xié)議采用了三次握手策略。 個(gè)人力量與時(shí)間有限,歡迎大家一起完善 Java面試通關(guān)手冊(cè)(Java學(xué)習(xí)指南)github 地址:https://github.com/Snailclimb/Java_Guide 非常推薦大家看一下 《圖解HTT...
摘要:那今天給就就投稿的這位屆小粉絲就是當(dāng)時(shí)暑期在騰訊實(shí)習(xí)順利轉(zhuǎn)正,然后月份通過(guò)內(nèi)推又拿下阿里的巨佬小姐姐。在騰訊實(shí)習(xí)期間也就是七月份我就提前批開(kāi)始投了幾份簡(jiǎn)歷,八月初接到阿里的電話,經(jīng)歷面技術(shù)面面,歷時(shí)一個(gè)月被阿里錄取。 又是一年實(shí)習(xí)季,大三的同學(xué)可能都在忙著找實(shí)習(xí)或者做簡(jiǎn)歷了~ 但是肯定也有同學(xué)還不想開(kāi)始找,覺(jué)得現(xiàn)在太早了 所以就就今天特意給大家準(zhǔn)備了一篇關(guān)于找實(shí)習(xí)的文章,相信大家看完一...
摘要:那今天給就就投稿的這位屆小粉絲就是當(dāng)時(shí)暑期在騰訊實(shí)習(xí)順利轉(zhuǎn)正,然后月份通過(guò)內(nèi)推又拿下阿里的巨佬小姐姐。在騰訊實(shí)習(xí)期間也就是七月份我就提前批開(kāi)始投了幾份簡(jiǎn)歷,八月初接到阿里的電話,經(jīng)歷面技術(shù)面面,歷時(shí)一個(gè)月被阿里錄取。 又是一年實(shí)習(xí)季,大三的同學(xué)可能都在忙著找實(shí)習(xí)或者做簡(jiǎn)歷了~ 但是肯定也有同學(xué)還不想開(kāi)始找,覺(jué)得現(xiàn)在太早了 所以就就今天特意給大家準(zhǔn)備了一篇關(guān)于找實(shí)習(xí)的文章,相信大家看完一...
摘要:那今天給就就投稿的這位屆小粉絲就是當(dāng)時(shí)暑期在騰訊實(shí)習(xí)順利轉(zhuǎn)正,然后月份通過(guò)內(nèi)推又拿下阿里的巨佬小姐姐。在騰訊實(shí)習(xí)期間也就是七月份我就提前批開(kāi)始投了幾份簡(jiǎn)歷,八月初接到阿里的電話,經(jīng)歷面技術(shù)面面,歷時(shí)一個(gè)月被阿里錄取。 又是一年實(shí)習(xí)季,大三的同學(xué)可能都在忙著找實(shí)習(xí)或者做簡(jiǎn)歷了~ 但是肯定也有同學(xué)還不想開(kāi)始找,覺(jué)得現(xiàn)在太早了 所以就就今天特意給大家準(zhǔn)備了一篇關(guān)于找實(shí)習(xí)的文章,相信大家看完一...
閱讀 2126·2021-11-24 10:28
閱讀 1150·2021-10-12 10:12
閱讀 3359·2021-09-22 15:21
閱讀 698·2021-08-30 09:44
閱讀 1914·2021-07-23 11:20
閱讀 1159·2019-08-30 15:56
閱讀 1774·2019-08-30 15:44
閱讀 1495·2019-08-30 13:55