中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

linux怎么做網(wǎng)站怎么提高關(guān)鍵詞搜索權(quán)重

linux怎么做網(wǎng)站,怎么提高關(guān)鍵詞搜索權(quán)重,河南省建筑業(yè)協(xié)會(huì)官網(wǎng),濟(jì)寧商城網(wǎng)站開發(fā)設(shè)計(jì)TCP四次揮手(圖解)-為何要四次揮手 當(dāng)客戶端和服務(wù)器通過三次握手建立了TCP連接以后,當(dāng)數(shù)據(jù)傳送完畢,肯定是要斷開TCP連接的啊。那 對于TCP的斷開連接,這里就有了神秘的“四次揮手”。 第一次揮手:主機(jī)1(可以使客戶端…

TCP四次揮手(圖解)-為何要四次揮手

當(dāng)客戶端和服務(wù)器通過三次握手建立了TCP連接以后,當(dāng)數(shù)據(jù)傳送完畢,肯定是要斷開TCP連接的啊。那 對于TCP的斷開連接,這里就有了神秘的“四次揮手”。

第一次揮手:主機(jī)1(可以使客戶端,也可以是服務(wù)器端),設(shè)置Sequence Number和 Acknowledgment Number,向主機(jī)2發(fā)送一個(gè)FIN報(bào)文段;此時(shí),主機(jī)1進(jìn)入FIN_WAIT_1狀態(tài);這表示 主機(jī)1沒有數(shù)據(jù)要發(fā)送給主機(jī)2了;

第二次揮手:主機(jī)2收到了主機(jī)1發(fā)送的FIN報(bào)文段,向主機(jī)1回一個(gè)ACK報(bào)文段,Acknowledgment Number為Sequence Number加1;主機(jī)1進(jìn)入FIN_WAIT_2狀態(tài);主機(jī)2告訴主機(jī)1,我“同意”你的關(guān)閉 請求;

第三次揮手:主機(jī)2向主機(jī)1發(fā)送FIN報(bào)文段,請求關(guān)閉連接,同時(shí)主機(jī)2進(jìn)入LAST_ACK狀態(tài);

第四次揮手:主機(jī)1收到主機(jī)2發(fā)送的FIN報(bào)文段,向主機(jī)2發(fā)送ACK報(bào)文段,然后主機(jī)1進(jìn)入TIME_WAIT 狀態(tài);主機(jī)2收到主機(jī)1的ACK報(bào)文段以后,就關(guān)閉連接;此時(shí),主機(jī)1等待2MSL后依然沒有收到回復(fù), 則證明Server端已正常關(guān)閉,那好,主機(jī)1也可以關(guān)閉連接了。

為何要四次分手呢?

那四次分手又是為何呢?TCP協(xié)議是一種面向連接的、可靠的、基于字節(jié)流的運(yùn)輸層通信協(xié)議。TCP是全 雙工模式,這就意味著,當(dāng)主機(jī)1發(fā)出FIN報(bào)文段時(shí),只是表示主機(jī)1已經(jīng)沒有數(shù)據(jù)要發(fā)送了,主機(jī)1告訴 主機(jī)2,它的數(shù)據(jù)已經(jīng)全部發(fā)送完畢了;但是,這個(gè)時(shí)候主機(jī)1還是可以接受來自主機(jī)2的數(shù)據(jù);當(dāng)主機(jī)2 返回ACK報(bào)文段時(shí),表示它已經(jīng)知道主機(jī)1沒有數(shù)據(jù)發(fā)送了,但是主機(jī)2還是可以發(fā)送數(shù)據(jù)到主機(jī)1的;當(dāng) 主機(jī)2也發(fā)送了FIN報(bào)文段時(shí),這個(gè)時(shí)候就表示主機(jī)2也沒有數(shù)據(jù)要發(fā)送了,就會(huì)告訴主機(jī)1,我也沒有數(shù) 據(jù)要發(fā)送了,之后彼此就會(huì)愉快的中斷這次TCP連接。如果要正確的理解四次分手的原理,就需要了解 四次分手過程中的狀態(tài)變化。

FIN_WAIT_1: 這個(gè)狀態(tài)要好好解釋一下,其實(shí)FIN_WAIT_1和FIN_WAIT_2狀態(tài)的真正含義都是表示等待 對方的FIN報(bào)文。而這兩種狀態(tài)的區(qū)別是:FIN_WAIT_1狀態(tài)實(shí)際上是當(dāng)SOCKET在ESTABLISHED狀態(tài) 時(shí),它想主動(dòng)關(guān)閉連接,向?qū)Ψ桨l(fā)送了FIN報(bào)文,此時(shí)該SOCKET即進(jìn)入到FIN_WAIT_1狀態(tài)。而當(dāng)對方 回應(yīng)ACK報(bào)文后,則進(jìn)入到FIN_WAIT_2狀態(tài),當(dāng)然在實(shí)際的正常情況下,無論對方何種情況下,都應(yīng)該 馬上回應(yīng)ACK報(bào)文,所以FIN_WAIT_1狀態(tài)一般是比較難見到的,而FIN_WAIT_2狀態(tài)還有時(shí)常??梢杂?netstat看到。(主動(dòng)方)

FIN_WAIT_2:上面已經(jīng)詳細(xì)解釋了這種狀態(tài),實(shí)際上FIN_WAIT_2狀態(tài)下的SOCKET,表示半連接,也即 有一方要求close連接,但另外還告訴對方,我暫時(shí)還有點(diǎn)數(shù)據(jù)需要傳送給你(ACK信息),稍后再關(guān)閉連 接。(主動(dòng)方)

CLOSE_WAIT:這種狀態(tài)的含義其實(shí)是表示在等待關(guān)閉。怎么理解呢?當(dāng)對方close一個(gè)SOCKET后發(fā)送 FIN報(bào)文給自己,你系統(tǒng)毫無疑問地會(huì)回應(yīng)一個(gè)ACK報(bào)文給對方,此時(shí)則進(jìn)入到CLOSE_WAIT狀態(tài)。接下 來呢,實(shí)際上你真正需要考慮的事情是察看你是否還有數(shù)據(jù)發(fā)送給對方,如果沒有的話,那么你也就可 以 close這個(gè)SOCKET,發(fā)送FIN報(bào)文給對方,也即關(guān)閉連接。所以你在CLOSE_WAIT狀態(tài)下,需要完成 的事情是等待你去關(guān)閉連接。(被動(dòng)方)

LAST_ACK: 這個(gè)狀態(tài)還是比較容易好理解的,它是被動(dòng)關(guān)閉一方在發(fā)送FIN報(bào)文后,最后等待對方的ACK 報(bào)文。當(dāng)收到ACK報(bào)文后,也即可以進(jìn)入到CLOSED可用狀態(tài)了。(被動(dòng)方)

TIME_WAIT: 表示收到了對方的FIN報(bào)文,并發(fā)送出了ACK報(bào)文,就等2MSL后即可回到CLOSED可用狀態(tài) 了。如果FINWAIT1狀態(tài)下,收到了對方同時(shí)帶FIN標(biāo)志和ACK標(biāo)志的報(bào)文時(shí),可以直接進(jìn)入到 TIME_WAIT狀態(tài),而無須經(jīng)過FIN_WAIT_2狀態(tài)。(主動(dòng)方)

為什么連接的時(shí)候是三次握手,關(guān)閉的時(shí)候卻是四次握手?

因?yàn)楫?dāng)Server端收到Client端的SYN連接請求報(bào)文后,可以直接發(fā)送SYN+ACK報(bào)文。其中ACK報(bào)文 是用來應(yīng)答的,SYN報(bào)文是用來同步的。但是關(guān)閉連接時(shí),當(dāng)Server端收到FIN報(bào)文時(shí),很可能并不會(huì)立 即關(guān)閉SOCKET,所以只能先回復(fù)一個(gè)ACK報(bào)文,告訴Client端,"你發(fā)的FIN報(bào)文我收到了"。只有等到我 Server端所有的報(bào)文都發(fā)送完了,我才能發(fā)送FIN報(bào)文,因此不能一起發(fā)送。故需要四步握手。

為什么TIME_WAIT狀態(tài)需要經(jīng)過2MSL(最大報(bào)文段生存時(shí)間)才能返回到CLOSE狀態(tài)?

雖然按道理,四個(gè)報(bào)文都發(fā)送完畢,我們可以直接進(jìn)入CLOSE狀態(tài)了,但是我們必須假象網(wǎng)絡(luò)是不 可靠的,有可以最后一個(gè)ACK丟失。所以TIME_WAIT狀態(tài)就是用來重發(fā)可能丟失的ACK報(bào)文。在Client發(fā) 送出最后的ACK回復(fù),但該ACK可能丟失。Server如果沒有收到ACK,將不斷重復(fù)發(fā)送FIN片段。所以 Client不能立即關(guān)閉,它必須確認(rèn)Server接收到了該ACK。Client會(huì)在發(fā)送出ACK之后進(jìn)入到TIME_WAIT 狀態(tài)。Client會(huì)設(shè)置一個(gè)計(jì)時(shí)器,等待2MSL的時(shí)間。如果在該時(shí)間內(nèi)再次收到FIN,那么Client會(huì)重發(fā) ACK并再次等待2MSL。所謂的2MSL是兩倍的MSL(Maximum Segment Lifetime)。MSL指一個(gè)片段在網(wǎng) 絡(luò)中最大的存活時(shí)間,2MSL就是一個(gè)發(fā)送和一個(gè)回復(fù)所需的最大時(shí)間。如果直到2MSL,Client都沒有 再次收到FIN,那么Client推斷ACK已經(jīng)被成功接收,則結(jié)束TCP連接。

為什么不能用兩次握手進(jìn)行連接?

3次握手完成兩個(gè)重要的功能,既要雙方做好發(fā)送數(shù)據(jù)的準(zhǔn)備工作(雙方都知道彼此已準(zhǔn)備好),也要 允許雙方就初始序列號進(jìn)行協(xié)商,這個(gè)序列號在握手過程中被發(fā)送和確認(rèn)。

現(xiàn)在把三次握手改成僅需要兩次握手,死鎖是可能發(fā)生的。作為例子,考慮計(jì)算機(jī)S和C之間的通信,假 定C給S發(fā)送一個(gè)連接請求分組,S收到了這個(gè)分組,并發(fā) 送了確認(rèn)應(yīng)答分組。按照兩次握手的協(xié)定,S認(rèn) 為連接已經(jīng)成功地建立了,可以開始發(fā)送數(shù)據(jù)分組??墒?#xff0c;C在S的應(yīng)答分組在傳輸中被丟失的情況下, 將不知道S 是否已準(zhǔn)備好,不知道S建立什么樣的序列號,C甚至懷疑S是否收到自己的連接請求分組。在 這種情況下,C認(rèn)為連接還未建立成功,將忽略S發(fā)來的任何數(shù)據(jù)分 組,只等待連接確認(rèn)應(yīng)答分組。而S 在發(fā)出的分組超時(shí)后,重復(fù)發(fā)送同樣的分組。這樣就形成了死鎖。

如果已經(jīng)建立了連接,但是客戶端突然出現(xiàn)故障了怎么辦?

TCP還設(shè)有一個(gè)?;钣?jì)時(shí)器,顯然,客戶端如果出現(xiàn)故障,服務(wù)器不能一直等下去,白白浪費(fèi)資源。服 務(wù)器每收到一次客戶端的請求后都會(huì)重新復(fù)位這個(gè)計(jì)時(shí)器,時(shí)間通常是設(shè)置為2小時(shí),若兩小時(shí)還沒有收 到客戶端的任何數(shù)據(jù),服務(wù)器就會(huì)發(fā)送一個(gè)探測報(bào)文段,以后每隔75秒鐘發(fā)送一次。若一連發(fā)送10個(gè)探 測報(bào)文仍然沒反應(yīng),服務(wù)器就認(rèn)為客戶端出了故障,接著就關(guān)閉連接。

http協(xié)議版本區(qū)別

HTTP 是基于 TCP/IP 協(xié)議的一個(gè)應(yīng)用層協(xié)議,是現(xiàn)代互聯(lián)網(wǎng)的一個(gè)基礎(chǔ)協(xié)議。規(guī)定了客戶端與服務(wù)端之 間的通信格式以及所占用的服務(wù)端口80(HTTPS是443)。

版本

HTTP 協(xié)議從開始立項(xiàng)到現(xiàn)在一共經(jīng)歷了 4 個(gè)版本:

HTTP 0.9 -> HTTP 1.0 -> HTTP 1.1 -> HTTP 2

HTTP 0.9

HTTP 0.9 是一個(gè)最古老的版本

只支持GET請求方式:由于不支持其他請求方式,因此客戶端是沒辦法向服務(wù)端傳輸太多的信息

沒有請求頭概念:所以不能在請求中指定版本號,服務(wù)端也只具有返回 HTML字符串的能力

服務(wù)端相響應(yīng)之后,立即關(guān)閉TCP連接

HTTP 1.0

隨著 HTTP 1.0 的發(fā)布,這個(gè)版本:

請求方式新增了POST,DELETE,PUT,HEADER等方式

增添了請求頭和響應(yīng)頭的概念,在通信中指定了 HTTP 協(xié)議版本號,以及其他的一些元信息 (比如: 狀態(tài)碼、權(quán)限、緩存、內(nèi)容編碼)

擴(kuò)充了傳輸內(nèi)容格式,圖片、音視頻資源、二進(jìn)制等都可以進(jìn)行傳輸

在這個(gè)版本主要的就是對請求和響應(yīng)的元信息進(jìn)行了擴(kuò)展,客戶端和服務(wù)端有更多的獲取當(dāng)前請求的所 有信息,進(jìn)而更好更快的處理請求相關(guān)內(nèi)容。

請求頭

一個(gè)簡單請求的頭信息

GET / HTTP/1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) Accept: / 可以看到在請求方法之后有 請求資源的位置 + 請求協(xié)議版本,之后是一些客戶端的信息配置

響應(yīng)頭

一個(gè)簡單響應(yīng)的頭信息(v1.0)

HTTP/1.0 200 OK Content-Type: text/plain Content-Length: 137582 Expires: Thu, 05 Dec 1997 16:00:00 GMT Last-Modified: Wed, 5 August 1996 15:55:28 GMT // 這是一個(gè)空行 ...數(shù)據(jù)內(nèi)容服務(wù)端的響應(yīng)頭第一個(gè)就是 請求協(xié)議版本,后面緊跟著是這次請求的狀態(tài)碼、以及狀態(tài)碼的描述,之后 的內(nèi)容是一些關(guān)于返回內(nèi)容的描述。

Content-Type

在 HTTP 1.0 的時(shí)候,任何的資源都可以被傳輸,傳輸?shù)母袷侥匾彩嵌喾N多樣的,客戶端在收到響應(yīng)體 的內(nèi)容的時(shí)候就是根據(jù)這個(gè) Content-Type 去進(jìn)行解析的。所以服務(wù)端返回時(shí)候必須帶著這個(gè)字段。

這些 Content-Type 有一個(gè)總稱叫做MIME type。

關(guān)于MIME type,這里想播插一個(gè)小插曲:

在 chrome 瀏覽器中,當(dāng)跨域請求回來的數(shù)據(jù) MIME type 同跨域標(biāo)簽應(yīng)有的 MIME type 不匹配時(shí),瀏 覽器會(huì)啟動(dòng) CORB 保護(hù)數(shù)據(jù)不被泄漏。被保護(hù)的數(shù)據(jù)有: html、xml、json。(eg: script、img 標(biāo)簽所支 持的 MIME type和他們都不一致),所以服務(wù)端在返回資源的時(shí)候一定要對應(yīng)返回正確的 Content Type,以免瀏覽器屏蔽返回結(jié)果。

筆者遇到的問題是在 chrome v76 版本之后,跨域圖片資源當(dāng)請求回來的數(shù)據(jù) Content-Type 不是 image/*,圖片會(huì)被攔截,頁面不展示圖片。

特性

無狀態(tài):服務(wù)器不跟蹤不記錄請求過的狀態(tài)

無連接:瀏覽器每次請求都需要建立tcp連接

無狀態(tài)

對于無狀態(tài)的特性可以借助cookie/session機(jī)制來做身份認(rèn)證和狀態(tài)記錄

無連接

無連接導(dǎo)致的性能缺陷有兩種:

無法復(fù)用連接

每次發(fā)送請求,都需要進(jìn)行一次tcp連接(即3次握手4次揮手),使得網(wǎng)絡(luò)的利用率非常低

隊(duì)頭阻塞

HTTP 1.0 規(guī)定在前一個(gè)請求響應(yīng)到達(dá)之后下一個(gè)請求才能發(fā)送,如果前一個(gè)阻塞,后面的請求也 給阻塞的

HTTP 1.1

HTTP 1.1 是在 1.0 發(fā)布之后的半年就推出了,完善了 1.0 版本。目前也還有很多的互聯(lián)網(wǎng)項(xiàng)目基于 HTTP 1.1 在向外提供服務(wù)。

特性

長連接:新增Connection字段,可以設(shè)置keep-alive值保持連接不斷開

管道化:基于上面長連接的基礎(chǔ),管道化可以不等第一個(gè)請求響應(yīng)繼續(xù)發(fā)送后面的請求,但響應(yīng)的 順序還是按照請求的順序返回

緩存處理:新增字段cache-control

斷點(diǎn)傳輸

長連接

HTTP 1.1默認(rèn)保持長連接,數(shù)據(jù)傳輸完成保持tcp連接不斷開,繼續(xù)用這個(gè)通道傳輸數(shù)據(jù)

管道化

基于長連接的基礎(chǔ),我們先看沒有管道化請求響應(yīng):

tcp沒有斷開,用的同一個(gè)通道

請求1 > 響應(yīng)1 --> 請求2 > 響應(yīng)2 --> 請求3 > 響應(yīng)3

管道化的請求響應(yīng): 請求1 --> 請求2 --> 請求3 > 響應(yīng)1 --> 響應(yīng)2 --> 響應(yīng)3

即使服務(wù)器先準(zhǔn)備好響應(yīng)2,也是按照請求順序先返回響應(yīng)1

雖然管道化,可以一次發(fā)送多個(gè)請求,但是響應(yīng)仍是順序返回,仍然無法解決隊(duì)頭阻塞的問題

緩存處理

當(dāng)瀏覽器請求資源時(shí),先看是否有緩存的資源,如果有緩存,直接取,不會(huì)再發(fā)請求,如果沒有緩存, 則發(fā)送請求。

通過設(shè)置字段cache-control來控制緩存。

斷點(diǎn)傳輸

在上傳/下載資源時(shí),如果資源過大,將其分割為多個(gè)部分,分別上傳/下載,如果遇到網(wǎng)絡(luò)故障,可以 從已經(jīng)上傳/下載好的地方繼續(xù)請求,不用從頭開始,提高效率

HTTP 2

特性:

二進(jìn)制分幀

多路復(fù)用: 在共享TCP鏈接的基礎(chǔ)上同時(shí)發(fā)送請求和響應(yīng)

頭部壓縮

服務(wù)器推送:服務(wù)器可以額外的向客戶端推送資源,而無需客戶端明確的請求

二進(jìn)制分幀

HTTP 1.x 的解析是基于文本,HTTP 2之后將所有傳輸?shù)男畔⒎指顬楦〉南⒑蛶?#xff0c;并對它們采用二進(jìn) 制格式的編碼,提高傳輸效率

多路復(fù)用

在共享TCP鏈接的基礎(chǔ)上同時(shí)發(fā)送請求和響應(yīng),基于二進(jìn)制分幀,在同一域名下所有訪問都是從同一個(gè) tcp連接中走,http消息被分解為獨(dú)立的幀,亂序發(fā)送,服務(wù)端根據(jù)標(biāo)識符和首部將消息重新組裝起來。

頭部壓縮

由于 HTTP 是無狀態(tài)的,每一個(gè)請求都需要頭部信息標(biāo)識這次請求相關(guān)信息,所以會(huì)造成傳輸很多重復(fù) 的信息,當(dāng)請求數(shù)量增大的時(shí)候,消耗的資源就會(huì)慢慢積累上去。所以 HTTP 2 可以維護(hù)一個(gè)頭部信息 字典,差量進(jìn)行更新頭信息,減少頭部信息傳輸占用的資源,詳見 HTTP/2 頭部壓縮技術(shù)介紹。

HTTPS 和 HTTP

HTTPS 協(xié)議需要申請證書

HTTP 和 HTTPS 使用端口不一樣,前者是80,后者是443

HTTP 協(xié)議運(yùn)行在 TCP 之上,所有傳輸?shù)膬?nèi)容都是明文,HTTPS 運(yùn)行在 SSL/TLS 之上,SSL/TLS運(yùn)行在TCP之上,所有傳輸?shù)膬?nèi)容都經(jīng)過加密的

HTTPS 可以有效的防止運(yùn)營商劫持

http://www.risenshineclean.com/news/39473.html

相關(guān)文章:

  • 網(wǎng)站正在開發(fā)中鄭州谷歌優(yōu)化外包
  • wordpress下拉篩選重慶做seo外包的
  • wordpress科技主題網(wǎng)站排名優(yōu)化公司
  • seo優(yōu)化排名推廣排名優(yōu)化系統(tǒng)
  • 網(wǎng)頁設(shè)計(jì)模板網(wǎng)站推薦外包網(wǎng)絡(luò)推廣公司
  • 上海網(wǎng)站開發(fā)公司外包自學(xué)seo能找到工作嗎
  • asp網(wǎng)站制作設(shè)計(jì)教程佛山網(wǎng)站優(yōu)化軟件
  • 海南省住房和城鄉(xiāng)建設(shè)廳網(wǎng)站首頁排名前50名免費(fèi)的網(wǎng)站
  • 網(wǎng)站建設(shè) 云計(jì)算搜索數(shù)據(jù)
  • wordpress企業(yè)網(wǎng)站制作鄭州seo優(yōu)化
  • 這幾年做啥網(wǎng)站致富推廣鏈接讓別人點(diǎn)擊
  • 門戶網(wǎng)站建設(shè)如何入賬銅陵seo
  • 美國十大購物網(wǎng)站免費(fèi)注冊個(gè)人網(wǎng)站不花錢
  • 長安東莞網(wǎng)站設(shè)計(jì)百度掃一掃識別圖片在線
  • logo設(shè)計(jì)培訓(xùn)寧波seo網(wǎng)絡(luò)推廣優(yōu)化價(jià)格
  • 網(wǎng)站網(wǎng)頁設(shè)計(jì)中怎么添加頁碼信息谷歌海外推廣
  • 網(wǎng)站方案策劃5118營銷大數(shù)據(jù)
  • wordpress屏蔽垃圾國外ip領(lǐng)碩網(wǎng)站seo優(yōu)化
  • 網(wǎng)站建設(shè)服務(wù)好公司排名google瀏覽器官網(wǎng)下載
  • 做公司網(wǎng)站計(jì)入什么會(huì)計(jì)科目seo用什么論壇引流
  • 網(wǎng)站實(shí)現(xiàn)seo基礎(chǔ)知識考試
  • 怎樣優(yōu)化網(wǎng)站排名靠前泰州百度關(guān)鍵詞優(yōu)化
  • 重慶市工程建設(shè)信息網(wǎng)2021優(yōu)化關(guān)鍵詞的公司
  • 哈爾濱地鐵愛建站seo查詢網(wǎng)站是什么
  • 企業(yè)網(wǎng)站優(yōu)化找哪家搜索排行
  • wordpress本地建站成人零基礎(chǔ)學(xué)電腦培訓(xùn)班
  • 瀚欽科技網(wǎng)站建設(shè)谷歌搜索引擎免費(fèi)
  • 北京建站設(shè)計(jì)寫一篇軟文1000字
  • 有沒有專門做航拍婚禮網(wǎng)站應(yīng)用下載app排行榜
  • wordpress動(dòng)漫博客模板東莞seo靠譜