面試筆記:
內(nèi)存泄漏memory leak :指程序在申請并使用完內(nèi)存后杈女,沒有進(jìn)行歸還洋丐,自己無法使用,系統(tǒng)也無法使用蒿讥,也沒法被GC回收蝶念。一次內(nèi)存泄漏似乎不會有太大的影響,但內(nèi)存泄漏的堆積會導(dǎo)致內(nèi)存溢出芋绸。指向這塊內(nèi)存空間的指針不存在了媒殉,鑰匙丟了,對象不可達(dá)摔敛。在c++中需要程序猿手動釋放內(nèi)存對象廷蓉,所以在C++中更容易存在內(nèi)存泄漏,而java引入了自動回收機(jī)制马昙,改善了這個問題桃犬。JVM會自動回收不可達(dá)的對象,但可達(dá)的無用對象(被有用對象引用著)仍不會被回收行楞,導(dǎo)致內(nèi)存泄漏
所有的可達(dá)性算法都會有起點(diǎn)攒暇,這個起點(diǎn)就是GC Root
通過GC Root 找出所有存活著的對象,那么剩下所有的沒有標(biāo)記的對象就是需要回收的對象??只回收不可達(dá)對象
GC root:JVM進(jìn)行GC的時候會從GC root進(jìn)行對象的可達(dá)性判斷子房,找到活著的/可達(dá)的對象?
方法區(qū)形用、棧就轧、本地方法棧不被GC所管理,因此選擇這些區(qū)域內(nèi)的對象作為GC roots,被GC roots引用的對象不被GC回收。棧中的局部變量(也叫局部變量表)中引用的對象+方法區(qū)中類的靜態(tài)變量引用的對象+本地方法棧中 JNI (Java Native Interface ?Native方法)引用的對象
內(nèi)存溢出out of memory :指程序申請內(nèi)存時尾序,沒有足夠的內(nèi)存空間供申請者使用钓丰,比如給了一塊存儲int類型數(shù)據(jù)的存儲空間躯砰,但是卻用來存儲long類型的數(shù)據(jù)每币,結(jié)果就是內(nèi)存不夠用,此時就會報(bào)錯OOM,即內(nèi)存溢出琢歇。內(nèi)存不足
內(nèi)存溢出原因:
1.內(nèi)存中加載的數(shù)據(jù)量過于龐大兰怠,如一次從數(shù)據(jù)庫取出過多數(shù)據(jù),如一次取十萬條記錄到內(nèi)存李茫。這個問題比較隱蔽揭保,在上線前,數(shù)據(jù)庫中數(shù)據(jù)較少魄宏,不容易出問題秸侣,上線后,數(shù)據(jù)庫中數(shù)據(jù)多了宠互,一次查詢就有可能引起內(nèi)存溢出味榛。因此,對于數(shù)據(jù)庫的查詢盡量采用分頁的方式予跌;
2.代碼中存在死循環(huán)或遞歸調(diào)用搏色,循環(huán)中創(chuàng)建了過多重復(fù)對象實(shí)例;
3.JVM啟動參數(shù)內(nèi)存值設(shè)定的過小
內(nèi)存溢出的解決方案:
1修改JVM啟動參數(shù)券册,直接增加內(nèi)存?-Xms俭厚,-Xmx參數(shù)
2檢查錯誤日志庄岖,查看OOM錯誤前是否有其它異常或錯誤。
通過jdk自帶的兩個可視化工具/插件來定位問題 jconsole.exe? ?jvisualvm.exe?
Dump機(jī)制:設(shè)置啟動參數(shù)-XX:+HeapDumpOnOutOfMemoryError 和 -XX:HeapDumpPath 當(dāng)發(fā)生OOM 的時候星立,會自動生成一個 .hprof (heap profile)二進(jìn)制文件
再使用工具分析這個 .hprof 文件來定位問題,比如用 VisualVM 或 Memory Analyzer (MAT) 狼忱,能看到創(chuàng)建的實(shí)例的個數(shù)和大小粘姜,可以將錯誤具體定位到某行代碼
具體OOM異常:
1 java.lang.OutOfMemoryError: Java heap space
new 了一個很大的對象2 OOM:GC overhead limit exceeded
GC回收時間過長,超過98%的時間用來做GC乞榨,但只回收了不到2%的堆內(nèi)存
3 unable to create new native thread
一個應(yīng)用進(jìn)程創(chuàng)建了多個線程秽之,超過系統(tǒng)承載極限
https://zhuanlan.zhihu.com/p/79355050
虛擬內(nèi)存/物理內(nèi)存
由頁表記錄映射位置,當(dāng)訪問到某個地址的時候吃既,通過頁表中的有效位考榨,可以得知此數(shù)據(jù)是否在內(nèi)存中,如果不在鹦倚,則通過缺頁異常河质,將磁盤對應(yīng)的數(shù)據(jù)拷貝到內(nèi)存中
mmap用來建立從虛擬空間地址到硬盤空間地址的映射,可以將一個虛擬空間地址映射到一個磁盤文件上
JVM如JRockit(Oracle)、J9(IBM)掀鹅、HotSpot
方法區(qū)是JVM的規(guī)范散休,而永久代、元空間則是JVM規(guī)范的實(shí)現(xiàn)
Jdk1.8使用Metaspace代替永久代乐尊,與永久代最大的區(qū)別是:元空間使用本地內(nèi)存(可以通過參數(shù)-XX:MetaspaceSize來指定元空間的大小)戚丸,永久代則在虛擬機(jī)內(nèi)存中
網(wǎng)絡(luò):
1物理層 比特流轉(zhuǎn)為電信號,在物理媒體上傳輸數(shù)據(jù) IEEE802.3 802.5協(xié)議 rj-45標(biāo)準(zhǔn) 集線器扔嵌、中繼器限府、調(diào)制解調(diào)器、網(wǎng)線
2數(shù)據(jù)鏈路層:將數(shù)據(jù)封裝成幀 差錯控制 流量控制 在通信實(shí)體之間建立數(shù)據(jù)鏈路連接 網(wǎng)卡網(wǎng)橋交換機(jī) PPP CSMA/CD
3√網(wǎng)絡(luò)層 為數(shù)據(jù)包選擇路由 ?路由器
IP ICMP控制信息 IGMP ARP地址解析 RIP OSPF DHCP BGP
4√傳輸層 端到端的通信 TCP UDP
5會話層 解除或建立連接/會話
6表示層 數(shù)據(jù)格式的轉(zhuǎn)換
7√應(yīng)用層 最靠近用戶的一層痢缎,為用戶的應(yīng)用程序提供訪問網(wǎng)絡(luò)服務(wù)的接口 FTP文件傳輸 HTTP HTTPS加密 SMTP 電子郵件發(fā)/收POP3 ?DNS域名系統(tǒng)/域名解析Telnet遠(yuǎn)程登錄
DNS域名系統(tǒng)(是域名和IP地址相互映射的一個分布式數(shù)據(jù)庫胁勺,將域名翻譯解析成ip地址, DNS 域名解析 域名www.baidu.com)
輸入U(xiǎn)RL到返回頁面的全過程(天龍八步):
1根據(jù)域名独旷,進(jìn)行DNS域名解析署穗;
2.拿到解析的IP地址,建立TCP連接嵌洼;
3.向IP地址案疲,發(fā)送HTTP請求;
4.服務(wù)器處理請求咱台;
5.返回響應(yīng)結(jié)果络拌;
6.關(guān)閉TCP連接;
7.瀏覽器解析HTML視圖回溺;
8.瀏覽器對頁面布局渲染春贸;
HTTP:是基于TCP/IP通信協(xié)議來傳遞數(shù)據(jù)的網(wǎng)絡(luò)傳輸協(xié)議瀏覽器作為HTTP客戶端通過URL向HTTP服務(wù)端即WEB服務(wù)器發(fā)送請求
無連接:服務(wù)器處理完客戶的請求,并收到客戶的應(yīng)答后遗遵,就會斷開連接萍恕,采用這種方式可以節(jié)省傳輸時間。
無狀態(tài):后續(xù)處理需要前面的信息车要,則它必須重傳允粤,這可能導(dǎo)致連接傳送的數(shù)據(jù)量增大。但在服務(wù)器不需要先前信息時翼岁,它的應(yīng)答就較快类垫。
當(dāng)客戶端一次HTTP請求完成以后,客戶端再發(fā)送一次請求琅坡,服務(wù)器并不知道當(dāng)前客戶端是一個老用戶悉患。
可以用Cookie來解決無狀態(tài)的問題,客戶端發(fā)起請求時榆俺,攜帶cookie
瀏覽器能顯示的內(nèi)容有HTML售躁、XML坞淮、GIF、Flash 等陪捷,是通過
MIME Type 區(qū)分它們回窘,決定用什么內(nèi)容什么形式來顯示
請求報(bào)文:請求行(請求方法 url)+請求頭+請求體
響應(yīng)報(bào)文:狀態(tài)行(http版本號 狀態(tài)碼)+響應(yīng)頭+響應(yīng)體
URI統(tǒng)一資源標(biāo)識符 URI=URL定位符+URN名稱
URL是URI的子集,URI是以一種抽象的市袖,高層次概念定義統(tǒng)一資源標(biāo)識啡直,而URL和URN則是具體的資源標(biāo)識的方式
URL格式:
協(xié)議名://ip地址或域名:端口號/資源在服務(wù)器中的路徑
?name=value&name=value
tcp和udp的區(qū)別?
1凌盯、TCP是面向連接的(在客戶端和服務(wù)器之間傳輸數(shù)據(jù)之前要先建立連接付枫,長連接),UDP是無連接的(發(fā)送數(shù)據(jù)前不需要先建立連接)
2驰怎、TCP提供可靠的服務(wù)(通過TCP傳輸?shù)臄?shù)據(jù),無差錯二打,不丟失县忌,不重復(fù),且按序到達(dá))继效;UDP提供面向事務(wù)的簡單的不可靠的傳輸症杏。
3、UDP具有較好的實(shí)時性瑞信,工作效率比TCP高厉颤,適用于對高速傳輸和實(shí)時性比較高的通信。隨著網(wǎng)速的提高凡简,UDP使用越來越多逼友。
4、TCP連接只能是點(diǎn)到點(diǎn)的秤涩,而UDP支持一對一帜乞、一對多和多對多的交互通信。
5筐眷、TCP對系統(tǒng)資源要求比較多黎烈,UDP對系統(tǒng)資源要求比較少
6、UDP程序結(jié)構(gòu)更加簡單匀谣,沒有握手
7. TCP保證數(shù)據(jù)的順序照棋,UDP不能保證
無連接:如從A-B有多條路徑,每個數(shù)據(jù)包可以選擇不同的路徑 每個數(shù)據(jù)包之間都是互相獨(dú)立的武翎,各走各的路 每個數(shù)據(jù)包到達(dá)B的順序是不確定的 ?根據(jù)數(shù)據(jù)包選擇的路徑的長短而定 支持一對多通信
不可靠不穩(wěn)定容易丟包但速度快寄信只管發(fā)不管對方有沒有收到用于只要通訊速度盡量的快/實(shí)時性烈炭,比如語音和視頻時
面向連接:只支持一對一通信傳輸?shù)倪^程是可靠的,因此TCP需要經(jīng)過三次握手的環(huán)節(jié)后频,確立連接關(guān)系之后梳庆,才可以進(jìn)行傳輸暖途,另外TCP還有超時重傳機(jī)制、排序機(jī)制膏执,有發(fā)送的窗口驻售,擁塞控制機(jī)制,保證接收方接收到的就是發(fā)送方發(fā)送過去的數(shù)據(jù)打電話
對網(wǎng)絡(luò)通訊質(zhì)量有要求的時候更米,整個數(shù)據(jù)要準(zhǔn)確無誤的傳遞給對方時
面向連接三個階段:建立連接-傳輸數(shù)據(jù)-釋放連接
TCP三次握手:客戶端C 服務(wù)器S 確認(rèn)ACK 同步SYN 序列號seq
1 C向S發(fā)送一個帶有SYN+隨機(jī)生成的seq的請求報(bào)文段欺栗,請求建立連接,C進(jìn)入SYN_SENT狀態(tài)征峦,等待服務(wù)器的確認(rèn)
2 S收到后迟几,返回一個帶有SYN+ACK+隨機(jī)生成的seq的確認(rèn)報(bào)文段,表示C可以傳輸數(shù)據(jù)了栏笆,S進(jìn)入SYN_RCVD狀態(tài)
3 C收到后类腮,返回一個確認(rèn)應(yīng)答ACK(對確認(rèn)的確認(rèn)),表示收到了S的應(yīng)答蛉加,準(zhǔn)備開始傳輸數(shù)據(jù)蚜枢,C和S都進(jìn)入ESTABLISHED狀態(tài)
為什么是三次握手而不是兩次握手:
為了實(shí)現(xiàn)可靠數(shù)據(jù)傳輸,核心就是互相對seq的確認(rèn)针饥,三次握手的過程即是通信雙方相互告知seq值厂抽,然后ack中ack=seq+1傳給對方。
如果只是兩次握手丁眼,就只有C的seq能被確認(rèn)筷凤,S的seq得不到確認(rèn)
舉例:主機(jī)A發(fā)出的連接請求沒有收到主機(jī)B的確認(rèn),過一段時間后苞七,A又向B發(fā)送連接請求藐守,連接建立成功,完成數(shù)據(jù)傳輸莽鸭;
?但主機(jī)A之前發(fā)送的請求因網(wǎng)絡(luò)延遲也到達(dá)了主機(jī)B(并沒有丟失)吗伤,B以為是A又發(fā)起的新請求,于是B同意連接硫眨,并向主機(jī)A發(fā)回確認(rèn)足淆,如果是兩次握手,則B會以為新的連接已經(jīng)建立礁阁,并一直等待A發(fā)來數(shù)據(jù)巧号。這樣,B的很多資源就白白浪費(fèi)掉了姥闭。采用三次握手可以防止上述現(xiàn)象發(fā)生丹鸿,比如此時A不會向B的確認(rèn)發(fā)出確認(rèn)。B由于收不到確認(rèn)棚品,就知道A并沒有要求建立連接靠欢。就不會導(dǎo)致主機(jī)B的資源浪費(fèi)廊敌。
如果四次,那么就造成了浪費(fèi)门怪,因?yàn)樵谌谓Y(jié)束之后骡澈,就已經(jīng)可以保證C與S的可靠數(shù)據(jù)傳輸了
SYN攻擊:SYN泛洪攻擊/SYN FLOOD
攻擊者Client在短時間內(nèi)偽造大量不存在的IP地址,向Server不斷地發(fā)送SYN包掷空,Server回復(fù)ACK確認(rèn)包肋殴,并等待Client的確認(rèn),由于源地址是不存在的坦弟,因此护锤,Server需要不斷重發(fā)直至超時,這些偽造的SYN包將長時間占用未連接隊(duì)列酿傍,導(dǎo)致正常的SYN請求因?yàn)殛?duì)列滿而被丟棄烙懦,從而引起網(wǎng)絡(luò)堵塞甚至系統(tǒng)癱瘓
解決:設(shè)置SYN cookie模塊
DOS:Denial of Service拒絕服務(wù)攻擊使服務(wù)器系統(tǒng)過于忙碌而不能執(zhí)行有用的業(yè)務(wù),并占盡系統(tǒng)的關(guān)鍵資源
DDoS分布式拒絕服務(wù)
四次揮手:
1 C發(fā)送連接釋放報(bào)文段(FIN+seq)拧粪,用來關(guān)閉C到S的數(shù)據(jù)傳送,C停止發(fā)送數(shù)據(jù)修陡,客戶端進(jìn)入FIN-WAIT-1(終止等待1)狀態(tài)
2 S發(fā)送ACK ?S收到連接釋放報(bào)文,發(fā)出確認(rèn)報(bào)文ACK可霎,服務(wù)端就進(jìn)入了CLOSE-WAIT(關(guān)閉等待)狀態(tài),這時候處于半關(guān)閉狀態(tài)宴杀,客戶端已經(jīng)沒有數(shù)據(jù)要發(fā)送了癣朗,但是服務(wù)器若發(fā)送數(shù)據(jù),客戶端依要接收
3 S發(fā)送FIN連接釋放報(bào)文段 用來關(guān)閉S到C的數(shù)據(jù)傳送旺罢,S進(jìn)入LAST_ACK狀態(tài)
4 C發(fā)送ACK C進(jìn)入TIME_WAIT狀態(tài) S進(jìn)入CLOSED狀態(tài)
經(jīng)過2MSL(最長報(bào)文段壽命)時間后旷余,徹底關(guān)閉連接,C進(jìn)入CLOSED狀態(tài)
正向代理:客戶端代理, 代理客戶端, 服務(wù)端不知道實(shí)際發(fā)起請求的客戶端 訪問原來無法訪問的資源/翻墻
反向代理:服務(wù)端代理, 代理服務(wù)端, 客戶端不知道實(shí)際提供服務(wù)的服務(wù)端 ?保證內(nèi)網(wǎng)的安全扁达,阻止web攻擊正卧,大型網(wǎng)站通常將反向代理作為公網(wǎng)訪問地址 ?負(fù)載均衡
中間人攻擊Man-in-the-Middle Attack, MITM如SMB會話劫持、DNS欺騙 ?攔截正常的網(wǎng)絡(luò)通信數(shù)據(jù)跪解,并進(jìn)行數(shù)據(jù)篡改炉旷,而通信的雙方卻毫不知情
Http緩存:主要針對css,js叉讥,圖片等更新頻率不大的靜態(tài)文件
緩存命中率:從緩存中得到數(shù)據(jù)的請求數(shù)與總請求數(shù)的比率,越高越好
過期內(nèi)容:超過設(shè)置的有效時間窘行,通常必須重新向源服務(wù)器請求新的內(nèi)容或者驗(yàn)證過期的緩存內(nèi)容是否仍然有效
驗(yàn)證:驗(yàn)證緩存中的過期內(nèi)容是否仍然有效,驗(yàn)證通過的話刷新過期時間???失效:把失效內(nèi)容從緩存中移除
請求頭/響應(yīng)頭中的緩存字段:
Cache-Control(no-cache 不用過期的緩存)
Expires資源過期時間 由S->B ?Last-Modified由S->B
if-Modified-Since由B->S 其實(shí)就是之前服務(wù)器給的Last-Modified
Http緩存主要分為兩種:強(qiáng)緩存和協(xié)商緩存
瀏覽器先根據(jù)請求的http頭信息來判斷是否命中強(qiáng)緩存图仓,如果命中則直接加載強(qiáng)緩存中的資源罐盔,不會將請求發(fā)送到服務(wù)器,返回200救崔,這樣加載速度最快惶看,性能也很好捏顺。
如果未命中強(qiáng)緩存,則瀏覽器會將請求發(fā)送到服務(wù)器纬黎,服務(wù)器判斷是否命中協(xié)商緩存+協(xié)商緩存是否失效(即資源是否被修改了)幅骄。若可以使用,則服務(wù)器并不會返回資源信息莹桅,瀏覽器從協(xié)商緩存中加載資源昌执,返回304。
如果未命中協(xié)商緩存诈泼,則服務(wù)器會將完整的資源返回給瀏覽器懂拾,瀏覽器加載新資源,并更新緩存铐达。
強(qiáng)緩存:所請求的數(shù)據(jù)在緩存數(shù)據(jù)庫中尚未過期時岖赋,不與服務(wù)器進(jìn)行交互,直接使用緩存中的數(shù)據(jù)
當(dāng)強(qiáng)緩存過期瓮孙,使用協(xié)商緩存的方式唐断,向?yàn)g覽器發(fā)送請求,驗(yàn)證請求的數(shù)據(jù)是否已經(jīng)更新,如果已更新則返回新的數(shù)據(jù)杭抠,若未更新則使用緩存數(shù)據(jù)庫中的緩存數(shù)據(jù)脸甘,并刷新過期時間expires
向服務(wù)器發(fā)起請求,判斷自己的緩存是不是最新偏灿,如果是就接著用丹诀,不是就請求最新的文件,緩存起來用翁垂,以此循環(huán)
http緩存方案铆遭,md5緩存/cdn緩存 CDN會選擇一個離用戶最近的CDN邊緣節(jié)點(diǎn)來響應(yīng)用戶的請求
cookie不是很安全,別人可以分析存放在本地的cookie并進(jìn)行cookie欺騙,考慮到安全應(yīng)當(dāng)使用session
禁用cookie后仍想使用session沿猜,通過 url傳值枚荣,把session id附加到url上
100臨時響應(yīng) 200成功 300重定向 400客戶端錯誤 500服務(wù)器錯誤
301 本網(wǎng)頁永久性轉(zhuǎn)移到另一個地址302臨時性地址移動
304瀏覽器中有緩存
400請求中有語法錯誤403請求被服務(wù)器拒絕 405請求方式錯誤
415 不支持的媒體格式
502 網(wǎng)關(guān)錯誤 504 網(wǎng)關(guān)超時 503服務(wù)不可用
Http和Https:
https=http+ssl/tls加密 ?TLS1.2
http端口號為80,https端口號為443
ssl加密:采用對稱加密和非對稱加密的混合加密方式
加密和解密同用一個密鑰的方式稱為共享密鑰加密/對稱加密
先使用對方的公鑰對數(shù)據(jù)進(jìn)行加密啼肩,對方再用自己的私鑰解密得到數(shù)據(jù)公開密鑰加密/非對稱加密常見算法有RSA
混合加密:先用非對稱加密方式傳輸一個密鑰橄妆,再使用此密鑰進(jìn)行對稱加密方式傳輸數(shù)據(jù)因?yàn)榉菍ΨQ加密方式比較慢
SSL全稱為?Socket Security Layer,TLS全稱為Transport Layer Security疟游,這兩者沒有本質(zhì)的區(qū)別呼畸,都是做的傳輸層之上的加密(介于傳輸層及應(yīng)用層之間) ?保證數(shù)據(jù)的保密性(所有信息都是加密傳播,第三方無法竊聽數(shù)據(jù))和完整性(一旦第三方篡改了數(shù)據(jù)颁虐,接收方會知道)和身份驗(yàn)證(服務(wù)器配備了由CA頒發(fā)的證書蛮原,可以證明服務(wù)器的身份)
TLS握手,主要分為三個階段:參數(shù)協(xié)商另绩、身份驗(yàn)證儒陨、密鑰交換
TLS算法:信息摘要 ?數(shù)字簽名 ?對稱加密 密鑰交換算法
C和S都需要驗(yàn)證自己收到的公鑰的正確性花嘶,而這個驗(yàn)證通過CA認(rèn)證實(shí)現(xiàn),即數(shù)字證書認(rèn)證
1當(dāng)TCP建立連接之后蹦漠,TLS握手的第一步由客戶端發(fā)起椭员,發(fā)送 ClientHello 的消息到服務(wù)器
2 然后服務(wù)器端在收到這個 ClientHello,從中選擇服務(wù)器支持的版本和套件笛园,發(fā)送 ServerHello 消息(其中包含證書)
3 客戶端收到 ServerHello 后隘击,會對其中的證書進(jìn)行驗(yàn)證,得到對應(yīng)的公鑰
4 客戶端生成一個隨機(jī)數(shù)X研铆,使用公鑰對其加密埋同,傳給S
5 S用私鑰對其解密得到X
6 C和S以X為密鑰進(jìn)行對稱加密通信
各種算法:RSA/DH/PSK/SRP
HTTP 1.0規(guī)定瀏覽器與服務(wù)器只保持短暫的連接,瀏覽器的每次請求都需要與服務(wù)器建立一個TCP連接棵红,服務(wù)器完成請求處理后立即斷開TCP連接凶赁,服務(wù)器不跟蹤每個客戶端也不記錄過去的請求數(shù)據(jù)
HTTP1.1版本新特性:
1默認(rèn)使用長連接/持久連接,節(jié)省通信量逆甜,只要客戶端服務(wù)端任意一端沒有明確提出斷開TCP連接虱肄,就一直保持連接,可以發(fā)送多次HTTP請求
2 B可以以管道方式pipeline交煞,一個 TCP 連接中可以同時發(fā)出多個HTTP請求咏窿,而不用一個個等待響應(yīng),不用等待上一次請求結(jié)果返回素征,就可以直接發(fā)出下一次請求
3支持host域
HTTP1.0和1.1在之后很長的一段時間內(nèi)會一直并存
HTTP2.0版本新特性:HTTP2源自于?SPDY協(xié)議
采用二進(jìn)制格式傳輸數(shù)據(jù)翰灾,F(xiàn)rame是 HTTP2 二進(jìn)制格式的基礎(chǔ)HTTP1.x 采用文本格式
HTTP2對消息頭采用 HPACK 進(jìn)行壓縮傳輸,能夠節(jié)省消息頭占用的網(wǎng)絡(luò)的流量稚茅,而HTTP1.x每次請求,都會攜帶大量冗余頭信息平斩,浪費(fèi)了很多帶寬資源首部壓縮
支持多路復(fù)用技術(shù)Multiplexing通過復(fù)用僅僅一條或幾條TCP連接亚享,在客戶端與服務(wù)器間發(fā)送幾十個請求或回應(yīng)。刷新頁面就不用再重新建立TCP連接和SSL連接
對請求劃分優(yōu)先級
Server Push技術(shù)服務(wù)端能夠更快的把資源推送給客戶端
最小化網(wǎng)絡(luò)延遲绘面,提升網(wǎng)絡(luò)速度
瀏覽器可以對同一Host建立多個TCP連接
當(dāng)瀏覽器拿到一個有幾十張圖片的網(wǎng)頁欺税,肯定不能只開一個TCP連接按順序下載,那樣用戶會等很久揭璃,這時候就需要對同一個Host 建立多個 TCP 連接晚凿。
Chrome 最多允許對同一個 Host 建立六個TCP 連接