測(cè)試工程師面試題-Http網(wǎng)絡(luò)面試題

Q:輸入U(xiǎn)RL到網(wǎng)頁(yè)顯示出來(lái)中間的過(guò)程?

1、輸入網(wǎng)址
2、DNS解析
3、建立TCP鏈接
4、客戶端發(fā)送HTTP請(qǐng)求
5、服務(wù)器處理請(qǐng)求
6、服務(wù)器響應(yīng)請(qǐng)求
7、瀏覽器展示HTML
8、瀏覽器發(fā)送請(qǐng)求獲取其他在HTML中的資源

Q: 如果輸?一個(gè) url,沒(méi)有訪問(wèn)到你預(yù)期的網(wǎng)站,原因?

  • DNS壞了,修改?己的 IP 地址為 8.8.8.8 試試
  • ?絡(luò)斷了
  • 服務(wù)器拒絕訪問(wèn)
  • 請(qǐng)求或者響應(yīng)在?絡(luò)傳輸中途被劫?

Q:Headers的各部分內(nèi)容

Accept 指定客戶端能夠接收的內(nèi)容類(lèi)型
Accept-Charset 瀏覽器可以接受的字符編碼集
Accept-Encoding 指定瀏覽器可以支持的web服務(wù)器返回內(nèi)容壓縮編碼類(lèi)型
Accept-Language 瀏覽器可接受的語(yǔ)言
Authorization HTTP授權(quán)的授權(quán)證書(shū)
Cache-Control 指定請(qǐng)求和響應(yīng)遵循的緩存機(jī)制
Cookie HTTP請(qǐng)求發(fā)送時(shí),會(huì)把保存在該請(qǐng)求域名下的所有cookie值一起發(fā)送給web服務(wù)器。
Content-Length 請(qǐng)求的內(nèi)容長(zhǎng)度
Content-Type 請(qǐng)求的與實(shí)體對(duì)應(yīng)的MIME信息
Date 請(qǐng)求發(fā)送的日期和時(shí)間
Expect 請(qǐng)求的特定的服務(wù)器行為
Host 指定請(qǐng)求的服務(wù)器的域名和端口號(hào)
Range 只請(qǐng)求實(shí)體的一部分,指定范圍
Referer 先前網(wǎng)頁(yè)的地址,當(dāng)前請(qǐng)求網(wǎng)頁(yè)緊隨其后,即來(lái)路
User-Agent User-Agent的內(nèi)容包含發(fā)出請(qǐng)求的用戶信息
Warning 關(guān)于消息實(shí)體的警告信息

Q:響應(yīng)狀態(tài)碼

1xx:指示信息--表示請(qǐng)求已接收,繼續(xù)處理
2xx:成功--表示請(qǐng)求已被成功接收、理解、接受
3xx:重定向--要完成請(qǐng)求必須進(jìn)行更進(jìn)一步的操作
4xx:客戶端錯(cuò)誤--請(qǐng)求有語(yǔ)法錯(cuò)誤或請(qǐng)求無(wú)法實(shí)現(xiàn)
5xx:服務(wù)器端錯(cuò)誤--服務(wù)器未能實(shí)現(xiàn)合法的請(qǐng)求
常見(jiàn)狀態(tài)碼:
200 OK //客戶端請(qǐng)求成功
302 Found //臨時(shí)性重定向,響應(yīng)報(bào)文的 Location ?部給出的 URL 用來(lái)臨時(shí)定位資源
304 Not Modified //服務(wù)器內(nèi)容沒(méi)有更新,可以直接讀取瀏覽?緩存
400 Bad Request //客戶端請(qǐng)求有語(yǔ)法錯(cuò)誤,不能被服務(wù)器所理解
401 Unauthorized //請(qǐng)求未經(jīng)授權(quán),這個(gè)狀態(tài)代碼必須和WWW-Authenticate報(bào)頭域一起使用
403 Forbidden //服務(wù)器收到請(qǐng)求,但是拒絕提供服務(wù)
404 Not Found //請(qǐng)求資源不存在,eg:輸入了錯(cuò)誤的URL
500 Internal Server Error //服務(wù)器發(fā)生不可預(yù)期的錯(cuò)誤
503 Server Unavailable //服務(wù)器當(dāng)前不能處理客戶端的請(qǐng)求,一段時(shí)間后可能恢復(fù)正常

Q:什么是HTTPS, HTTPS的原理?

1、Client發(fā)起一個(gè)HTTPS的請(qǐng)求,根據(jù)RFC2818的規(guī)定,Client知道需要連接Server的443(默認(rèn))端口。
2、Server把事先配置好的公鑰證書(shū)(public key certificate)返回給客戶端。
3、Client驗(yàn)證公鑰證書(shū):比如是否在有效期內(nèi),證書(shū)的用途是不是匹配Client請(qǐng)求的站點(diǎn),是不是在CRL吊銷(xiāo)列表里面,它的上一級(jí)證書(shū)是否有效,這是一個(gè)遞歸的過(guò)程,直到驗(yàn)證到根證書(shū)(操作系統(tǒng)內(nèi)置的Root證書(shū)或者Client內(nèi)置的Root證書(shū))。如果驗(yàn)證通過(guò)則繼續(xù),不通過(guò)則顯示警告信息。
4、Client使用偽隨機(jī)數(shù)生成器生成加密所使用的對(duì)稱密鑰,然后用證書(shū)的公鑰加密這個(gè)對(duì)稱密鑰,發(fā)給Server。
5、Server使用自己的私鑰(private key)解密這個(gè)消息,得到對(duì)稱密鑰。至此,Client和Server雙方都持有了相同的對(duì)稱密鑰。
6、Server使用對(duì)稱密鑰加密“明文內(nèi)容A”,發(fā)送給Client。
7、Client使用對(duì)稱密鑰解密響應(yīng)的密文,得到“明文內(nèi)容A”。
8、Client再次發(fā)起HTTPS的請(qǐng)求,使用對(duì)稱密鑰加密請(qǐng)求的“明文內(nèi)容B”,然后Server使用對(duì)稱密鑰解密密文,得到“明文內(nèi)容B”。

Q:HTTPS 和 HTTP 的區(qū)別?

  • HTTPS比HTTP更加安全,對(duì)搜索引擎更友好,利于SEO,谷歌\百度優(yōu)先索引HTTPS網(wǎng)頁(yè);
  • HTTPS需要用到SSL證書(shū),而HTTP不用;
  • HTTPS標(biāo)準(zhǔn)端口443,HTTP標(biāo)準(zhǔn)端口80;
  • HTTPS基于傳輸層,HTTP基于應(yīng)用層;
  • HTTPS在瀏覽器顯示綠色安全鎖,HTTP沒(méi)有顯示;

Q:網(wǎng)絡(luò)請(qǐng)求 method 有哪幾種?

1、OPTIONS 返回服務(wù)器針對(duì)特定資源所支持的HTTP請(qǐng)求方法,也可以利用向web服務(wù)器發(fā)送‘*’的請(qǐng)求來(lái)測(cè)試服務(wù)器的功能性。
2、HEAD 向服務(wù)器索與GET請(qǐng)求相一致的響應(yīng),只不過(guò)響應(yīng)體將不會(huì)被返回。這一方法可以再不必傳輸整個(gè)響應(yīng)內(nèi)容的情況下,就可以獲取包含在響應(yīng)消息頭中的元信息。
3、GET 向特定的資源發(fā)出請(qǐng)求。注意:GET方法不應(yīng)當(dāng)被用于產(chǎn)生“副作用”的操作中,例如在Web Application中,其中一個(gè)原因是GET可能會(huì)被網(wǎng)絡(luò)蜘蛛等隨意訪問(wèn)。
4、POST 向指定資源提交數(shù)據(jù)進(jìn)行處理請(qǐng)求(例如提交表單或者上傳文件)。數(shù)據(jù)被包含在請(qǐng)求體中;POST請(qǐng)求可能會(huì)導(dǎo)致新的資源的建立或已有資源的修改。
5、PUT 向指定資源位置上傳其最新內(nèi)容。
6、DELETE 請(qǐng)求服務(wù)器刪除Request-URL所標(biāo)識(shí)的資源。
7、TRACE 回顯服務(wù)器收到的請(qǐng)求,主要用于測(cè)試或診斷。
8、CONNECT HTTP/1.1協(xié)議中預(yù)留給能夠?qū)⑦B接改為管道方式的代理服務(wù)器。

Q:GET和POST區(qū)別?

  • GET 請(qǐng)求只能 URL 編碼,而 POST 支持多種編碼方式;
  • GET 請(qǐng)求只接受 ASCII 字符的參數(shù),而 POST 則沒(méi)有限制;
  • GET 請(qǐng)求的參數(shù)通過(guò) URL 傳送,而 POST 放在 Request Body 中GET 相對(duì)于 POST 更不安全,因?yàn)閰?shù)直接暴露在 URL 中GET 請(qǐng)求會(huì)被瀏覽器主動(dòng)緩存,而 POST 不會(huì)(除非自己手動(dòng)設(shè)置);
  • GET 請(qǐng)求在 URL 傳參有長(zhǎng)度限制,而 POST 則沒(méi)有限制;
  • GET 產(chǎn)生的 URL 地址可以被收藏,而 POST 不可以;
  • GET 請(qǐng)求的參數(shù)會(huì)被完整的保留在瀏覽器的歷史記錄里,而 POST 的參數(shù)則不會(huì);
  • GET 在瀏覽器回退時(shí)是無(wú)害的,而 POST 會(huì)再次提交請(qǐng)求;

Q:PUT和POST區(qū)別?

  • POST請(qǐng)求的URI表示處理該封閉實(shí)體的資源,該資源可能是個(gè)數(shù)據(jù)接收過(guò)程、某種協(xié)議的網(wǎng)關(guān)、或者接收注解的獨(dú)立實(shí)體。
  • PUT請(qǐng)求中的URI表示請(qǐng)求中封閉的實(shí)體-用戶代理知道URI的目標(biāo),并且服務(wù)器無(wú)法將請(qǐng)求應(yīng)用到其他資源。如果服務(wù)器希望該請(qǐng)求應(yīng)用到另一個(gè)URI,就必須發(fā)送一個(gè)301響應(yīng);用戶代理可通過(guò)自己的判斷來(lái)決定是否轉(zhuǎn)發(fā)該請(qǐng)求。

Q:什么是 socket?

網(wǎng)絡(luò)上的兩個(gè)程序通過(guò)一個(gè)雙向的通信連接實(shí)現(xiàn)數(shù)據(jù)的交換,這個(gè)連接的一端稱為一個(gè)socket。

建立網(wǎng)絡(luò)通信連接至少要一對(duì)端口號(hào)(socket)。socket本質(zhì)是編程接口(API),對(duì)TCP/IP的封裝,TCP/IP也要提供可供程序員做網(wǎng)絡(luò)開(kāi)發(fā)所用的接口,這就是Socket編程接口;HTTP是轎車(chē),提供了封裝或者顯示數(shù)據(jù)的具體形式;Socket是發(fā)動(dòng)機(jī),提供了網(wǎng)絡(luò)通信的能力。

Socket的英文原義是"孔"或"插座"。作為BSD UNIX的進(jìn)程通信機(jī)制,取后一種意思。通常也稱作"套接字",用于描述IP地址和端口,是一個(gè)通信鏈的句柄,可以用來(lái)實(shí)現(xiàn)不同虛擬機(jī)或不同計(jì)算機(jī)之間的通信。在Internet上的主機(jī)一般運(yùn)行了多個(gè)服務(wù)軟件,同時(shí)提供幾種服務(wù)。每種服務(wù)都打開(kāi)一個(gè)Socket,并綁定到一個(gè)端口上,不同的端口對(duì)應(yīng)于不同的服務(wù)。

Socket正如其英文原意那樣,像一個(gè)多孔插座。一臺(tái)主機(jī)猶如布滿各種插座的房間,每個(gè)插座有一個(gè)編號(hào),有的插座提供220伏交流電, 有的提供110伏交流電,有的則提供有線電視節(jié)目。 客戶軟件將插頭插到不同編號(hào)的插座,就可以得到不同的服務(wù)。

Q:什么是反向代理?

代理就是你的訪問(wèn)通過(guò)一臺(tái)機(jī)器來(lái)訪問(wèn)網(wǎng)站。。你是主動(dòng)的,網(wǎng)站是被動(dòng)的,網(wǎng)站那里不能得到你的真實(shí)ip地址。

反向代理就是是網(wǎng)站通過(guò)一臺(tái)機(jī)器發(fā)布到公網(wǎng)。。你訪問(wèn)的時(shí)候是直接訪問(wèn)那臺(tái)代理機(jī)器的,然后通過(guò)那臺(tái)機(jī)器才訪問(wèn)到網(wǎng)站。你無(wú)法得到網(wǎng)站的真實(shí)ip地址。這樣的好處是保護(hù)了網(wǎng)站服務(wù)器,而且可以通過(guò)一個(gè)被動(dòng)代理服務(wù)器將很多機(jī)器解析到同一ip地址。

Q:什么是DNS?

DNS(Domain Name System,域名系統(tǒng)),萬(wàn)維網(wǎng)上作為域名和IP地址相互映射的一個(gè)分布式數(shù)據(jù)庫(kù),能夠使用戶更方便的訪問(wèn)互聯(lián)網(wǎng),而不用去記住能夠被機(jī)器直接讀取的IP數(shù)串。通過(guò)域名,最終得到該域名對(duì)應(yīng)的IP地址的過(guò)程叫做域名解析(或主機(jī)名解析)。DNS協(xié)議運(yùn)行在UDP協(xié)議之上,使用端口號(hào)53。在RFC文檔中RFC 2181對(duì)DNS有規(guī)范說(shuō)明,RFC 2136對(duì)DNS的動(dòng)態(tài)更新進(jìn)行說(shuō)明,RFC 2308對(duì)DNS查詢的反向緩存進(jìn)行說(shuō)明。

Q:QPS 和 TPS 的區(qū)別是什么?

  • QPS:Queries Per Second意思是“每秒查詢率”,是一臺(tái)服務(wù)器每秒能夠相應(yīng)的查詢次數(shù),是對(duì)一個(gè)特定的查詢服務(wù)器在規(guī)定時(shí)間內(nèi)所處理流量多少的衡量標(biāo)準(zhǔn)。
  • TPS:是TransactionsPerSecond的縮寫(xiě),也就是事務(wù)數(shù)/秒。它是軟件測(cè)試結(jié)果的測(cè)量單位。一個(gè)事務(wù)是指一個(gè)客戶機(jī)向服務(wù)器發(fā)送請(qǐng)求然后服務(wù)器做出反應(yīng)的過(guò)程。客戶機(jī)在發(fā)送請(qǐng)求時(shí)開(kāi)始計(jì)時(shí),收到服務(wù)器響應(yīng)后結(jié)束計(jì)時(shí),以此來(lái)計(jì)算使用的時(shí)間和完成的事務(wù)個(gè)數(shù),

Q:為什么前端靜態(tài)資源要上傳到 CDN 上?

大型Web應(yīng)用對(duì)速度的追求并沒(méi)有止步于僅僅利用瀏覽器緩存,因?yàn)闉g覽器緩存始終只是為了提升二次訪問(wèn)的速度,對(duì)于首次訪問(wèn)的加速,我們需要從網(wǎng)絡(luò)層面進(jìn)行優(yōu)化,最常見(jiàn)的手段就是CDN(Content Delivery Network,內(nèi)容分發(fā)網(wǎng)絡(luò))加速。通過(guò)將靜態(tài)資源緩存到離用戶很近的相同網(wǎng)絡(luò)運(yùn)營(yíng)商的CDN節(jié)點(diǎn)上,不但能提升用戶的訪問(wèn)速度,還能節(jié)省服務(wù)器的帶寬消耗,降低負(fù)載。

Q:Cookie和Session的區(qū)別

1、cookie放在客戶端的瀏覽器上,session放服務(wù)器上。
2、Session生成的Session id是在cookie里保存的,cookie被禁止后可以通過(guò)URL重寫(xiě)來(lái)繼續(xù)使用session
3、cookie不是安全,存放在本地的COOKIE可能被獲取并進(jìn)行COOKIE欺騙。
4、session會(huì)給服務(wù)器帶來(lái)壓力,考慮到服務(wù)器性能,應(yīng)當(dāng)使用COOKIE。
5、cookie只能保存字符串類(lèi)型,以文本的方式。session通過(guò)類(lèi)似與Hashtable的數(shù)據(jù)結(jié)構(gòu)來(lái)保存,能支持任何類(lèi)型的對(duì)象(session中可含有多個(gè)對(duì)象)
6、單個(gè)cookie保存的數(shù)據(jù)不能超過(guò)4K,很多瀏覽器都限制一個(gè)站點(diǎn)最多保存20個(gè)cookie, Session大小沒(méi)限制。

Q:Token和Session的區(qū)別

1、Token放客戶端, Session在服務(wù)端。
2、 Session是空間換時(shí)間, Token是時(shí)間換空間。
3、 Token解決了集群時(shí)候跨節(jié)點(diǎn)訪問(wèn)問(wèn)題。

Q:WebStorage優(yōu)點(diǎn)

1、減少網(wǎng)絡(luò)流量:
一旦數(shù)據(jù)保存在本地之后,就可以避免再向服務(wù)器請(qǐng)求數(shù)據(jù),因此減少不必要的數(shù)據(jù)請(qǐng)求,減少數(shù)據(jù)在瀏覽器和服務(wù)器間不必要的來(lái)回傳遞 。
2、快速顯示數(shù)據(jù):
性能好,從本地讀數(shù)據(jù)比通過(guò)網(wǎng)絡(luò)從服務(wù)器上獲得數(shù)據(jù)快得多,本地?cái)?shù)據(jù)可以及時(shí)獲得,再加上網(wǎng)頁(yè)本身也可以有緩存,因此整個(gè)頁(yè)面和數(shù)據(jù)都在本地的話,可以立即顯示 。
3、臨時(shí)存儲(chǔ):
很多時(shí)候數(shù)據(jù)只需要在用戶瀏覽一組頁(yè)面期間使用,關(guān)閉窗口后數(shù)據(jù)就可以丟棄了,這種情況使用sessionStorage非常方便。

Q: 三次握手

三次握手(Three-way Handshake)其實(shí)就是指建立一個(gè)TCP連接時(shí),需要客戶端和服務(wù)器總共發(fā)送3個(gè)包。進(jìn)行三次握手的主要作用就是為了確認(rèn) 雙方的接收能力和發(fā)送能力是否正常、指定自己的初始化序列號(hào)為后面的可靠性傳送做準(zhǔn)備。實(shí)質(zhì)上其實(shí)就是連接服務(wù)器指定端口,建立TCP連接, 并同步連接雙方的序列號(hào)和確認(rèn)號(hào),交換TCP窗口大小信息。

剛開(kāi)始客戶端處于 Closed 的狀態(tài),服務(wù)端處于 Listen 狀態(tài)。進(jìn)行三次握手:

第一次握手:客戶端給服務(wù)端發(fā)一個(gè) SYN 報(bào)文,并指明客戶端的初始化序列號(hào) ISN。此時(shí)客戶端處于 SYN_SENT 狀態(tài)。
首部的同步位SYN=1,初始序號(hào)seq=x,SYN=1的報(bào)文段不能攜帶數(shù)據(jù),但要消耗掉一個(gè)序號(hào)。

第二次握手:服務(wù)器收到客戶端的 SYN 報(bào)文之后,會(huì)以自己的 SYN 報(bào)文作為應(yīng)答,并且也是指定了自己的初始化序列號(hào) ISN(s)。同時(shí)會(huì)把客戶端的 ISN + 1 作為ACK 的值,表示自己已經(jīng)收到了客戶端的 SYN,此時(shí)服務(wù)器處于 SYN_RCVD 的狀態(tài)。
在確認(rèn)報(bào)文段中SYN=1,ACK=1,確認(rèn)號(hào)ack=x+1,初始序號(hào)seq=y。

第三次握手:客戶端收到 SYN 報(bào)文之后,會(huì)發(fā)送一個(gè) ACK 報(bào)文,當(dāng)然,也是一樣把服務(wù)器的 ISN + 1 作為 ACK 的值,表示已經(jīng)收到了服務(wù)端的 SYN 報(bào)文,此時(shí)客戶端處于 ESTABLISHED 狀態(tài)。服務(wù)器收到 ACK 報(bào)文之后,也處于 ESTABLISHED 狀態(tài),此時(shí),雙方已建立起了連接。
確認(rèn)報(bào)文段ACK=1,確認(rèn)號(hào)ack=y+1,序號(hào)seq=x+1(初始為seq=x,第二個(gè)報(bào)文段所以要+1),ACK報(bào)文段可以攜帶數(shù)據(jù),不攜帶數(shù)據(jù)則不消耗序號(hào)。

發(fā)送第一個(gè)SYN的一端將執(zhí)行主動(dòng)打開(kāi)(active open),接收這個(gè)SYN并發(fā)回下一個(gè)SYN的另一端執(zhí)行被動(dòng)打開(kāi)(passive open)。

在socket編程中,客戶端執(zhí)行connect()時(shí),將觸發(fā)三次握手。

Q: 四次揮手

建立一個(gè)連接需要三次握手,而終止一個(gè)連接要經(jīng)過(guò)四次揮手(也有將四次揮手叫做四次握手的)。這由TCP的半關(guān)閉(half-close)造成的。所謂的半關(guān)閉,其實(shí)就是TCP提供了連接的一端在結(jié)束它的發(fā)送后還能接收來(lái)自另一端數(shù)據(jù)的能力。

TCP 連接的拆除需要發(fā)送四個(gè)包,因此稱為四次揮手(Four-way handshake),客戶端或服務(wù)端均可主動(dòng)發(fā)起揮手動(dòng)作。

剛開(kāi)始雙方都處于ESTABLISHED 狀態(tài),假如是客戶端先發(fā)起關(guān)閉請(qǐng)求。四次揮手的過(guò)程如下:

第一次揮手:客戶端發(fā)送一個(gè) FIN 報(bào)文,報(bào)文中會(huì)指定一個(gè)序列號(hào)。此時(shí)客戶端處于 FIN_WAIT1 狀態(tài)。 即發(fā)出連接釋放報(bào)文段(FIN=1,序號(hào)seq=u),并停止再發(fā)送數(shù)據(jù),主動(dòng)關(guān)閉TCP連接,進(jìn)入FIN_WAIT1(終止等待1)狀態(tài),等待服務(wù)端的確認(rèn)。

第二次揮手:服務(wù)端收到 FIN 之后,會(huì)發(fā)送 ACK 報(bào)文,且把客戶端的序列號(hào)值 +1 作為 ACK 報(bào)文的序列號(hào)值,表明已經(jīng)收到客戶端的報(bào)文了,此時(shí)服務(wù)端處于 CLOSE_WAIT 狀態(tài)。 即服務(wù)端收到連接釋放報(bào)文段后即發(fā)出確認(rèn)報(bào)文段(ACK=1,確認(rèn)號(hào)ack=u+1,序號(hào)seq=v),服務(wù)端進(jìn)入CLOSE_WAIT(關(guān)閉等待)狀態(tài),此時(shí)的TCP處于半關(guān)閉狀態(tài),客戶端到服務(wù)端的連接釋放??蛻舳耸盏椒?wù)端的確認(rèn)后,進(jìn)入FIN_WAIT2(終止等待2)狀態(tài),等待服務(wù)端發(fā)出的連接釋放報(bào)文段。

第三次揮手:如果服務(wù)端也想斷開(kāi)連接了,和客戶端的第一次揮手一樣,發(fā)給 FIN 報(bào)文,且指定一個(gè)序列號(hào)。此時(shí)服務(wù)端處于 LAST_ACK 的狀態(tài)。 即服務(wù)端沒(méi)有要向客戶端發(fā)出的數(shù)據(jù),服務(wù)端發(fā)出連接釋放報(bào)文段(FIN=1,ACK=1,序號(hào)seq=w,確認(rèn)號(hào)ack=u+1),服務(wù)端進(jìn)入LAST_ACK(最后確認(rèn))狀態(tài),等待客戶端的確認(rèn)。

第四次揮手:客戶端收到 FIN 之后,一樣發(fā)送一個(gè) ACK 報(bào)文作為應(yīng)答,且把服務(wù)端的序列號(hào)值 +1 作為自己 ACK 報(bào)文的序列號(hào)值,此時(shí)客戶端處于 TIME_WAIT 狀態(tài)。需要過(guò)一陣子以確保服務(wù)端收到自己的 ACK 報(bào)文之后才會(huì)進(jìn)入 CLOSED 狀態(tài),服務(wù)端收到 ACK 報(bào)文之后,就處于關(guān)閉連接了,處于 CLOSED 狀態(tài)。 即客戶端收到服務(wù)端的連接釋放報(bào)文段后,對(duì)此發(fā)出確認(rèn)報(bào)文段(ACK=1,seq=u+1,ack=w+1),客戶端進(jìn)入TIME_WAIT(時(shí)間等待)狀態(tài)。此時(shí)TCP未釋放掉,需要經(jīng)過(guò)時(shí)間等待計(jì)時(shí)器設(shè)置的時(shí)間2MSL后,客戶端才進(jìn)入CLOSED狀態(tài)。 收到一個(gè)FIN只意味著在這一方向上沒(méi)有數(shù)據(jù)流動(dòng)。客戶端執(zhí)行主動(dòng)關(guān)閉并進(jìn)入TIME_WAIT是正常的,服務(wù)端通常執(zhí)行被動(dòng)關(guān)閉,不會(huì)進(jìn)入TIME_WAIT狀態(tài)。

在socket編程中,任何一方執(zhí)行close()操作即可產(chǎn)生揮手操作。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容