技術(shù)面試必備基礎(chǔ)知識(shí)_第1頁(yè)
技術(shù)面試必備基礎(chǔ)知識(shí)_第2頁(yè)
技術(shù)面試必備基礎(chǔ)知識(shí)_第3頁(yè)
技術(shù)面試必備基礎(chǔ)知識(shí)_第4頁(yè)
技術(shù)面試必備基礎(chǔ)知識(shí)_第5頁(yè)
已閱讀5頁(yè),還剩735頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

本文來(lái)自CyC2018/CS-Notes,版本請(qǐng)?zhí)朇yC2018之后回復(fù)“”獲取1帶通CSMA/CD協(xié)議PPP協(xié)議虛擬局域IPIP地址解析協(xié)議網(wǎng)際控制報(bào)文協(xié)議ICMP1.2.虛擬網(wǎng)絡(luò)地址轉(zhuǎn)換路由器的結(jié)內(nèi)部網(wǎng)關(guān)協(xié)議內(nèi)部網(wǎng)關(guān)協(xié)議外部網(wǎng)關(guān)協(xié)議傳輸U(kuò)DPTCPUDP首部格式TCP首部格式TCP的三次握手TCP的四次揮手TCP可靠傳輸TCP滑動(dòng)窗口TCP流量控制TCP擁塞控制WebDHCPARPMACDNS二、HTTP方法三、HTTP1XX信2XX成4XX5XX服務(wù)器錯(cuò)誤四、HTTP首部與SessionCache-HTTPS八、HTTP/1.1新特性參考1.3一、I/O模阻塞式I/OI/O復(fù)用信號(hào)驅(qū)動(dòng)異步I/O模型比較二、I/O復(fù)用selectpoll應(yīng)用epoll應(yīng)用參考第2章操作系2.2VIM文件 的權(quán)參考3據(jù)原子性一致性性持久性三級(jí)協(xié)MySQL四、級(jí) 提交讀(READCOMMITTED)可重復(fù)讀(REPEATABLEREAD)Undo日志RecordLocksGapLocks第一范式第二范式第三范式八、ER3.2節(jié)3.3Leetcode-Database595.BigCountriesSQLSchemaSQLSchemaSQLSchema596.ClassesMoreThan5StudentsSQLSchema182.DuplicatesSQLSchema196.DeleteDuplicatesSQLSchemabineTwoTablesSQLSchema181.EmployeesEarningMoreThanTheirManagersSQLSchemaSQLSchema184.DepartmentHighestSalarySQLSchemaSecondHighestSalarySQLSchemaNthHighestSalarySQLSchemaRankScoresSQLSchema180.ConsecutiveNumbersSQLSchemaSQL3.4B+Tree與樹(shù)的比MySQLB+Tree三、引ShardingID唯一六3.5五、Redis與RDBAOF持久化十一44.1Java基礎(chǔ)二、StringPoolnewString(abc?oat與double五、Object通用方法Java各版本的新特性Java與C++的區(qū)別JREorJDK參考4.2Java容器put操鏈表轉(zhuǎn)與HashTablesize結(jié)LRU緩參考4.3Java新建限期等待(Timed實(shí)現(xiàn)Runnable接Callable接口繼承Thread類(lèi)VSExecutor的中斷操作wait()notify()notifyAll()await()signal()signalAll()七、J.U.C-八、J.U.C-其它組十、Java內(nèi)存模型volatile變量可重入代碼(ReentrantCode)4.4JavaJava虛擬機(jī)棧堆二、收強(qiáng)軟弱虛收集算標(biāo)記-標(biāo)記-SerialParallelScavengeSerialOld收集ParallelOldCMSG1MinorGCFullGC對(duì)象優(yōu)先在EdenFullGC調(diào)用JDK1.7ConcurrentMode主動(dòng)雙親委派模4.5Java編碼String的編碼方文件NIO實(shí)例將通道到選擇器循環(huán)套接NIO實(shí)例八、參考第5章系統(tǒng)設(shè)第5.2節(jié)分布式數(shù)據(jù)庫(kù)的唯一索Redis的SETNX指令ZookeeperZookeeper抽象模器PrepareLearn階段Candidate的競(jìng)選多個(gè)Candidate競(jìng)選5.3集輪詢(xún)(WeightedRound最少連接(least最少連接(WeightedLeast隨機(jī)算法源地址哈希法(IPHTTPDNS解反向服務(wù)二、集群下的SessionStickySessionSessionReplicationSessionServer第5.4節(jié) 原設(shè) 為二、跨站請(qǐng)?jiān)瓩z查Referer首部字添加校驗(yàn)一、緩存二、反Java內(nèi)部的緩CPU多級(jí)緩存參考5.6息隊(duì)列二、使用場(chǎng)參考第6章面向?qū)卫鼵lassDiagram簡(jiǎn)單工廠(SimpleFactory)ClassDiagram工廠方法(FactoryMethod)ClassDiagram ClassDiagramClassDiagram原型模式ClassDiagramClassDiagram命令ClassDiagram解釋器ClassDiagram迭代器 ClassDiagram中介者ClassDiagram備忘錄ClassDiagram觀察者ClassDiagram狀態(tài)ClassDiagram策略ClassDiagram模板方法(TemteMethod)ClassDiagram者ClassDiagram空對(duì)象ClassDiagram適配器ClassDiagram橋接ClassDiagram組合ClassDiagram裝飾ClassDiagram外觀ClassDiagramClassDiagram(ClassDiagram多實(shí)現(xiàn)關(guān)系(Realization)聚合關(guān)系(Aggregation)組合關(guān)系(Composition)關(guān)聯(lián)關(guān)系(Association)依賴(lài)關(guān)系(Dependency)迪法參考77.1O?er解題思打印從1到最大的n位數(shù)O(1)時(shí)間內(nèi)刪除鏈表節(jié)點(diǎn)解題思K個(gè)結(jié)點(diǎn)解題min函數(shù)的棧大小為K1n整數(shù)中1出現(xiàn)的K個(gè)結(jié)點(diǎn)56.數(shù)組中只出現(xiàn)一次的數(shù)字S的兩個(gè)數(shù)字S的連續(xù)正數(shù)序列解題思動(dòng)態(tài)規(guī)劃+參考7.2Leetcode題解有序數(shù)組的TwoKth出現(xiàn)頻率最多的k不的區(qū)間個(gè)的最大收益有序數(shù)組的Single

能到達(dá)的太平洋和的區(qū)IP1-9N皇

矩陣01需要費(fèi)用粘貼71626統(tǒng)計(jì)階乘尾部有多少個(gè)數(shù)組中出現(xiàn)次數(shù)多于n/23n刪除鏈表的倒數(shù)第n樹(shù)

尋找二叉查找樹(shù)的第k實(shí)現(xiàn)一個(gè)實(shí)現(xiàn)一個(gè)Trie棧和10把數(shù)組中的0找出數(shù)組中最長(zhǎng)的連續(xù)有序矩陣的Kth一個(gè)數(shù)組元素在[1,n]找出數(shù)組中重復(fù)的數(shù),數(shù)組值在[1,n]圖判斷一個(gè)數(shù)是不是2的n次判斷一個(gè)數(shù)是不是4的n次判斷一個(gè)數(shù)的位級(jí)表示是否不會(huì)出現(xiàn)連續(xù)的0和統(tǒng)計(jì)從0~n每個(gè)數(shù)的二進(jìn)制表示中1的個(gè)7.3倍率堆Java并查QuickFindQuickUnionQuickUnion路徑壓縮的Quick

符號(hào)2-3編11.1算機(jī)網(wǎng)網(wǎng)絡(luò)把主機(jī)連接起來(lái),而互聯(lián)網(wǎng)是把多種不同的網(wǎng)絡(luò)連接起來(lái),因此互聯(lián)網(wǎng)是網(wǎng)絡(luò)的網(wǎng)互聯(lián)網(wǎng)服務(wù)提供商ISP可以從互聯(lián)理機(jī)構(gòu)獲得許多IP地址,同時(shí)擁有通信線(xiàn)路以及路由器等聯(lián)網(wǎng)設(shè)備,個(gè)人或機(jī)構(gòu)向ISP繳納一定的費(fèi)用就可以接入互聯(lián)網(wǎng)。目前的互聯(lián)網(wǎng)是一種多層次ISP結(jié)構(gòu),ISP根據(jù)覆蓋面積的大小分為第一層ISP、區(qū)域ISP和接入ISP?;ヂ?lián)網(wǎng)交換點(diǎn)IXP允許兩個(gè)ISP直接相連而不用經(jīng)過(guò)第三個(gè)ISP??蛻?hù)-服務(wù)器(C/S):客戶(hù)是服務(wù)的請(qǐng)求方,服務(wù)器是服務(wù)的提供對(duì)等(P2P):不區(qū)分客戶(hù)和服務(wù)器電路交電路交換用于 通信系統(tǒng),兩個(gè)用戶(hù)要通信之前需要建立一條的物理鏈路,并且在整個(gè)通信過(guò)程中始終占用該鏈路。由于通信的過(guò)程中不可能一直在使用傳輸線(xiàn)路,因此電路交換對(duì)線(xiàn)路的利用率很低,往往不到10%。分組交每個(gè)分組都有首部和尾部,包含了源地址和目的地址等控制信息,在同一個(gè)傳輸線(xiàn)同時(shí)傳輸多個(gè)分組互相不會(huì)影響,因此在同一條傳輸線(xiàn)允許同時(shí)傳輸多個(gè)分組,也就是說(shuō)分組交換不需要占用傳輸線(xiàn)路。在一個(gè)郵局通信系統(tǒng)中,郵局收到一份郵件之后,先下來(lái),然后把相同目的地的郵件一起轉(zhuǎn)發(fā)到下一個(gè)目的地,這個(gè)過(guò)程就是轉(zhuǎn)發(fā)過(guò)程,分組交換也使用了轉(zhuǎn)發(fā)過(guò)程??倳r(shí)延=排隊(duì)時(shí)延+處理時(shí)延+傳輸時(shí)延+時(shí)排隊(duì)時(shí)分組在路由器的輸入隊(duì)列和輸出隊(duì)列中排隊(duì)等待的時(shí)間,取決于網(wǎng)絡(luò)當(dāng)前的通信處理時(shí)主機(jī)或路由器收到分組時(shí)進(jìn)行處理所需要的時(shí)間,例如分析首部、從分組中提取數(shù)據(jù)、進(jìn)行差錯(cuò)檢驗(yàn)或查找適當(dāng)?shù)穆酚傻?。傳輸時(shí)主機(jī)或路由器傳輸數(shù)據(jù)幀所需要的時(shí)其中l(wèi)表示數(shù)據(jù)幀的長(zhǎng)度,v表示傳輸速率時(shí)電磁波在信道中所需要花費(fèi)的時(shí)間,電磁波的速度接近光速其中l(wèi)表示信道長(zhǎng)度,v表示電磁波在信道上的速度五層協(xié)應(yīng)用層:為特定應(yīng)用程序提供數(shù)據(jù)傳輸服務(wù),例如HTTP、DNS等協(xié)議。數(shù)據(jù)單位為報(bào)傳輸層:為進(jìn)程提供通用數(shù)據(jù)傳輸服務(wù)。由于應(yīng)用層協(xié)議很多,定義通用的傳輸層協(xié)議就可以支持不斷增多的應(yīng)用層協(xié)議。層包括兩種協(xié)議:傳輸控制協(xié)議TCP,提供面向連接、可靠的數(shù)據(jù)傳輸服務(wù),數(shù)據(jù)單位為報(bào)文段;用戶(hù)數(shù)據(jù)報(bào)協(xié)議UDP,提供無(wú)連接、盡最大努力的數(shù)據(jù)傳輸服務(wù),數(shù)據(jù)單位為用戶(hù)數(shù)據(jù)報(bào)。TCP主要提供完整性服務(wù),UDP主要提供及時(shí)性服務(wù)。網(wǎng)絡(luò)層:為主機(jī)提供數(shù)據(jù)傳輸服務(wù)。而傳輸層協(xié)議是為主機(jī)中的進(jìn)程提供數(shù)據(jù)傳輸服務(wù)。網(wǎng)絡(luò)層把傳輸層傳遞數(shù)據(jù)鏈路層:網(wǎng)絡(luò)層針對(duì)的還是主機(jī)之間的數(shù)據(jù)傳輸服務(wù),而主機(jī)之間可以有很多鏈路,鏈路層協(xié)議就是為同物理層:考慮的是怎樣在傳輸上傳輸數(shù)據(jù)比特流,而不是指具體的傳輸。物理層的作用是盡可能其中表示層和會(huì)話(huà)層用途如表示層:數(shù)據(jù)壓縮、加密以及數(shù)據(jù)描述,這使得應(yīng)用程序不必關(guān)心在各臺(tái)主機(jī)中數(shù)據(jù)內(nèi)部格式不同的問(wèn)題會(huì)話(huà)層:建立及管理會(huì)話(huà)五層協(xié)議沒(méi)有表示層和會(huì)話(huà)層,而是將這些功能留給應(yīng)用程序開(kāi)發(fā)者處它只有四層,相當(dāng)于五層協(xié)議中數(shù)據(jù)鏈路層和物理層合并為網(wǎng)絡(luò)接口TCP/IP體系結(jié)構(gòu)不嚴(yán)格遵循OSI分層概念,應(yīng)用層可能會(huì)直接使用IP層或者網(wǎng)絡(luò)接口層數(shù)據(jù)在各層之間的傳遞在向下的過(guò)程中,需要添加下層協(xié)議所需要的首部或者尾部,而在向上的過(guò)程中不斷拆開(kāi)首部和尾路由器只有下面三層協(xié)議,因?yàn)槁酚善魑挥诰W(wǎng)絡(luò)中,不需要為進(jìn)程或者應(yīng)用程序提供服務(wù),因此也就不需要傳輸層和應(yīng)用層。CyC2018提供了該項(xiàng)目的離線(xiàn)閱讀版本,回復(fù)""即可領(lǐng)取。也提供了一份技術(shù)面試復(fù)習(xí)大綱,不僅系統(tǒng)整理了面試知識(shí)點(diǎn),而且標(biāo)注了各個(gè)知識(shí)點(diǎn)的重要程度,從而幫你理清多而雜的面試知識(shí)點(diǎn),回復(fù)"大綱"即可領(lǐng)取。我基本是按照這個(gè)大綱來(lái)進(jìn)行復(fù)習(xí)的,對(duì)我拿到了T頭條等O?r起到很大的幫助。完全可以和我一樣根據(jù)大綱上列的知識(shí)點(diǎn)來(lái)進(jìn)行復(fù)習(xí),就不用看很多不重要的內(nèi)容,也可以知道哪些內(nèi)容很重要從而多安排一些復(fù)習(xí)時(shí)間。全雙工通信:雙向同時(shí)模擬信號(hào)是連續(xù)的信號(hào),數(shù)字信號(hào)是離散的信號(hào)。帶通調(diào)制把數(shù)字信號(hào)轉(zhuǎn)換為模擬信CyC2018提供了該項(xiàng)目的離線(xiàn)閱讀版本,回復(fù)""即可領(lǐng)取。也提供了一份技術(shù)面試復(fù)習(xí)大綱,不僅系統(tǒng)整理了面試知識(shí)點(diǎn),而且標(biāo)注了各個(gè)知識(shí)點(diǎn)的重要程度,從而幫你理清多而雜的面試知識(shí)點(diǎn),回復(fù)"大綱"即可領(lǐng)取。我基本是按照這個(gè)大綱來(lái)進(jìn)行復(fù)習(xí)的,對(duì)我拿到了T頭條等O?r起到很大的幫助。完全可以和我一樣根據(jù)大綱上列的知識(shí)點(diǎn)來(lái)進(jìn)行復(fù)習(xí),就不用看很多不重要的內(nèi)容,也可以知道哪些內(nèi)容很重要從而多安排一些復(fù)習(xí)時(shí)間。封裝成將網(wǎng)絡(luò)層傳下來(lái)的分組添加首部和尾部,用于標(biāo)記幀的開(kāi)始和結(jié)透明傳透明表示一個(gè)實(shí)際存在的事物看起來(lái)好像不存在一幀使用首部和尾部進(jìn)行定界,如果幀的數(shù)據(jù)部分含有和首部尾部相同的內(nèi)容,那么幀的開(kāi)始和結(jié)束位置就會(huì)被錯(cuò)誤的判定。需要在數(shù)據(jù)部分出現(xiàn)首部尾部相同的內(nèi)容前面插入轉(zhuǎn)義字符。如果數(shù)據(jù)部分出現(xiàn)轉(zhuǎn)義字符,那么就在轉(zhuǎn)義字符前面再加個(gè)轉(zhuǎn)義字符。在接收端進(jìn)行處理之后可以還原出原始數(shù)據(jù)。這個(gè)過(guò)程透明傳輸?shù)膬?nèi)容是轉(zhuǎn)義字符,用戶(hù)察覺(jué)不到轉(zhuǎn)義字符的存在。差錯(cuò)檢目前數(shù)據(jù)鏈路層廣泛使用了循環(huán)冗余檢驗(yàn)(CRC)來(lái)檢查比特差錯(cuò)廣播信一對(duì)多通信,一個(gè)節(jié)點(diǎn)發(fā)送的數(shù)據(jù)能夠被廣播信道上所有的節(jié)點(diǎn)接收所有的節(jié)點(diǎn)都在同一個(gè)廣播信道上發(fā)送數(shù)據(jù),因此需要有專(zhuān)門(mén)的控制方法進(jìn)行協(xié)調(diào),避免發(fā)生(也叫碰主要有兩種控制方法進(jìn)行協(xié)調(diào),一個(gè)是使用信道復(fù)用技術(shù),一是使用CSMA/CD協(xié)議一對(duì)一因?yàn)椴粫?huì)發(fā)生碰撞,因此也比較簡(jiǎn)單,使用PPP協(xié)議進(jìn)行控制頻分復(fù)頻分復(fù)用的所有主機(jī)在相同的時(shí)間占用不同的頻率帶寬資時(shí)分復(fù)時(shí)分復(fù)用的所有主機(jī)在不同的時(shí)間占用相同的頻率帶寬資使用頻分復(fù)用和時(shí)分復(fù)用進(jìn)行通信,在通信的過(guò)程中主機(jī)會(huì)一直占用一部分信道資源。但是由于計(jì)算機(jī)數(shù)據(jù)的突發(fā)性質(zhì),通信過(guò)程沒(méi)必要一直占用信道資源而不讓出給其它用戶(hù)使用,因此這兩種方式對(duì)信道的利用率都不高。統(tǒng)計(jì)時(shí)分復(fù)是對(duì)時(shí)分復(fù)用的一種改進(jìn),不固定每個(gè)用戶(hù)在時(shí)分復(fù)用幀中的位置,只要有數(shù)據(jù)就集中起來(lái)組成統(tǒng)計(jì)時(shí)分復(fù)用幀然后發(fā)送。波分復(fù)光的頻分復(fù)用。由于光的頻率很高,因此習(xí)慣上用波長(zhǎng)而不是頻率來(lái)表示所使用的光載碼分復(fù)為每個(gè)用戶(hù)分配mbit的碼片,并且所有的碼片正交,對(duì)于任意兩個(gè)碼片和為了討論方便,取m=8,設(shè)碼 。在擁有該碼片的用戶(hù)發(fā)送比特1時(shí)就發(fā)送該碼片,發(fā)送比特0時(shí)就發(fā)送該碼片的反 在計(jì)算時(shí) 記作(-1-1-1+1+1-1+1+1),可以得其中為的反碼利用上面的式子我們知道,當(dāng)接收端使用對(duì)接收到的數(shù)據(jù)進(jìn)行內(nèi)積運(yùn)算時(shí),結(jié)果為0的是其它用戶(hù)發(fā)送的數(shù)據(jù),結(jié)果為1的是用戶(hù)發(fā)送的比特1,結(jié)果為-的是用戶(hù)發(fā)送的比特0碼分復(fù)用需要發(fā)送的數(shù)據(jù)量為原先的m倍CSMA/CDCSMA/CD表示載波多點(diǎn)接入/碰撞檢測(cè)多點(diǎn)接入:說(shuō)明這是總線(xiàn)型網(wǎng)絡(luò),許多主機(jī)以多點(diǎn)的方式連接到總線(xiàn)載波:每個(gè)主機(jī)都必須不停地信道。在發(fā)送前,如果到信道正在使用,就必須等待碰撞檢測(cè):在發(fā)送中,如果到信道已有其它主機(jī)正在發(fā)送數(shù)據(jù),就表示發(fā)生了碰撞。雖然每個(gè)主機(jī)在發(fā)送記端到端的時(shí)延為τ,最先發(fā)送的站點(diǎn)最多經(jīng)過(guò)2τ就可以知道是否發(fā)生了碰撞,稱(chēng)2τ為爭(zhēng)用期。只有經(jīng)過(guò)爭(zhēng)當(dāng)發(fā)生碰撞時(shí),站點(diǎn)要停止發(fā)送,等待一段時(shí)間再發(fā)送。這個(gè)時(shí)間采用截?cái)喽M(jìn)制指數(shù)退避算法來(lái)確定。從離散的整數(shù)集合{0,1,..,(2k-1)}中隨機(jī)取出一個(gè)數(shù),記作r,然后取r倍的爭(zhēng)用期作為重傳等待時(shí)間。PPP互聯(lián)網(wǎng)用戶(hù)通常需要連接到某個(gè)ISP之后才能接入到互聯(lián)網(wǎng),PPP協(xié)議是用戶(hù)計(jì)算機(jī)和ISP進(jìn)行通信時(shí)所使用的數(shù)據(jù)PPP的幀格F字段為幀的定界AC字段暫時(shí)沒(méi)有意信息部分的長(zhǎng)度不超過(guò)1500MACMAC地址是鏈路層地址,長(zhǎng)度為6字節(jié)(48位),用于唯一標(biāo)識(shí)網(wǎng)絡(luò)適配器(網(wǎng)卡)一臺(tái)主機(jī)擁有多少個(gè)網(wǎng)絡(luò)適配器就有多少個(gè)MAC地址。例如筆記本電腦普遍存在無(wú)線(xiàn)網(wǎng)絡(luò)適配器和有線(xiàn)網(wǎng)絡(luò)適配器,因此就有兩個(gè)MAC地址。局域網(wǎng)是一種典型的廣播信道,主要特點(diǎn)是網(wǎng)絡(luò)為一個(gè)單位所擁有,且地理范圍和站點(diǎn)數(shù)目均有限。主要有以太網(wǎng)、令牌環(huán)網(wǎng)、FDDI和TM等局域網(wǎng)技術(shù),目前以太網(wǎng)占領(lǐng)著有線(xiàn)局域網(wǎng)市場(chǎng)??梢园凑站W(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)對(duì)局域網(wǎng)進(jìn)行分以太網(wǎng)是一種星型拓?fù)浣Y(jié)構(gòu)局域早期使用集線(xiàn)器進(jìn)行連接,集線(xiàn)器是一種物理層設(shè)備,作用于比特而不是幀,當(dāng)一個(gè)比特到達(dá)接口時(shí),集線(xiàn)器重新生成這個(gè)比特,并將其能量強(qiáng)度放大,從而擴(kuò)大網(wǎng)絡(luò)的傳輸距離,之后再將這個(gè)比特發(fā)送到其它所有接口。如果集線(xiàn)器同時(shí)收到兩個(gè)不同接口的幀,那么就發(fā)生了碰撞。目前以太網(wǎng)使用交換機(jī)替代了集線(xiàn)器,交換機(jī)是一種鏈路層設(shè)備,它不會(huì)發(fā)生碰撞,能根據(jù)MAC地址進(jìn)行轉(zhuǎn)以太網(wǎng)幀格類(lèi)型:標(biāo)記上層使用的協(xié)數(shù)據(jù):長(zhǎng)度在46-1500之間,如果太小則需要填充FCS:幀檢驗(yàn)序列,使用的是CRC檢驗(yàn)方法交換機(jī)具有習(xí)能力,學(xué)習(xí)的是交換表的內(nèi)容,交換表中著MAC地址到接口的映射正是由于這種習(xí)能力,因此交換機(jī)是一種即插即用設(shè)備,不需要網(wǎng)絡(luò)管理員手動(dòng)配置交換表內(nèi)容下圖中,交換機(jī)有4個(gè)接口,主機(jī)A向主機(jī)B發(fā)送數(shù)據(jù)幀時(shí),交換機(jī)把主機(jī)A到接口1的映射寫(xiě)入交換表中。為了發(fā)送數(shù)據(jù)幀到B,先查交換表,此時(shí)沒(méi)有主機(jī)B的表項(xiàng),那么主機(jī)A就發(fā)送廣播幀,主機(jī)C和主機(jī)D會(huì)丟棄該幀,主機(jī)B回應(yīng)該幀向主機(jī)A發(fā)送數(shù)據(jù)包時(shí),交換機(jī)查找交換表得到主機(jī)A映射的接口為1,就發(fā)送數(shù)據(jù)幀到接口1,同時(shí)交換機(jī)添加主機(jī)B到接口2的映射。虛擬局域網(wǎng)可以建立與物理位置無(wú)關(guān)的邏輯組,只有在同一個(gè)虛擬局域網(wǎng)中的成員才會(huì)收到鏈路層廣播例如下圖中(A1,A2,A3,A4)屬于一個(gè)虛擬局域網(wǎng),A1發(fā)送的廣播會(huì)被A2、A3、A4收到,而其它站點(diǎn)收不到使用VLAN干線(xiàn)連接來(lái)建立虛擬局域網(wǎng),每臺(tái)交換機(jī)上的一個(gè)特殊接口被設(shè)置為干線(xiàn)接口,以互連VLAN交換機(jī)。IEEE定義了一種擴(kuò)展的以太網(wǎng)幀格式802.1Q,它在標(biāo)準(zhǔn)以太網(wǎng)幀上加進(jìn)了4字節(jié)首部VLAN,用于表示該幀屬CyC2018提供了該項(xiàng)目的離線(xiàn)閱讀版本,回復(fù)""即可領(lǐng)取。也提供了一份技術(shù)面試復(fù)習(xí)大綱,不僅系統(tǒng)整理了面試知識(shí)點(diǎn),而且標(biāo)注了各個(gè)知識(shí)點(diǎn)的重要程度,從而幫你理清多而雜的面試知識(shí)點(diǎn),回復(fù)"大綱"即可領(lǐng)取。我基本是按照這個(gè)大綱來(lái)進(jìn)行復(fù)習(xí)的,對(duì)我拿到了T頭條等O?r起到很大的幫助。完全可以和我一樣根據(jù)大綱上列的知識(shí)點(diǎn)來(lái)進(jìn)行復(fù)習(xí),就不用看很多不重要的內(nèi)容,也可以知道哪些內(nèi)容很重要從而多安排一些復(fù)習(xí)時(shí)間。因?yàn)榫W(wǎng)絡(luò)層是整個(gè)互聯(lián)網(wǎng)的,因此應(yīng)當(dāng)讓網(wǎng)絡(luò)層盡可能簡(jiǎn)單。網(wǎng)絡(luò)層向上只提供簡(jiǎn)單靈活的、無(wú)連接的、盡最大努力交互的數(shù)據(jù)報(bào)服務(wù)。使用IP協(xié)議,可以把異構(gòu)的物理網(wǎng)絡(luò)連接起來(lái),使得在網(wǎng)絡(luò)層看起來(lái)好像是一個(gè)統(tǒng)一的網(wǎng)與IP協(xié)議配套使用的還有三個(gè)協(xié)地址解析協(xié)議ARP(AddressResolution網(wǎng)際控制報(bào)文協(xié)議ICMP(InternetControlMessageProtocol)網(wǎng)際組管理IGMP(InternetGroupManagementProtocol)IP版本:有4(IPv4)和6(IPv6)兩個(gè)首部長(zhǎng)度:占4位,因此最大值為15。值為1表示的是1個(gè)32位字的長(zhǎng)度,也就是4字節(jié)。因?yàn)楣潭ú糠侄葹?0字節(jié),因此該值最小為5。如果可選字段的長(zhǎng)度不是4字節(jié)的整數(shù)倍,就用尾部的填充部分來(lái)填充區(qū)分服務(wù):用來(lái)獲得更好的服務(wù),一般情況下不使用總長(zhǎng)度:包括首部長(zhǎng)度和數(shù)據(jù)部分長(zhǎng)生存時(shí)間:TTL,它的存在是為了防止無(wú)法交付的數(shù)據(jù)報(bào)在互聯(lián)網(wǎng)中不斷兜圈子。以路由器跳數(shù)為單位,當(dāng)為0時(shí)就丟棄數(shù)據(jù)報(bào)協(xié)議:攜帶的數(shù)據(jù)應(yīng)該上交給哪個(gè)協(xié)議進(jìn)行處理,例如ICMP、TCP、UDP等首部檢驗(yàn)和:因?yàn)閿?shù)據(jù)報(bào)每經(jīng)過(guò)一個(gè)路由器,都要重新計(jì)算檢驗(yàn)和,因此檢驗(yàn)和不包含數(shù)據(jù)部分可以減少計(jì)算標(biāo)識(shí):在數(shù)據(jù)報(bào)長(zhǎng)度過(guò)長(zhǎng)從而發(fā)生分片的情況下,相同數(shù)據(jù)報(bào)的不同分片具有相同的標(biāo)識(shí)符片偏移和標(biāo)識(shí)符一起,用于發(fā)生分片的情況。片偏移的單位為8字節(jié)IPIP地址的編址方式經(jīng)歷了三個(gè)歷史階段:子網(wǎng)劃無(wú)分分由兩部分組成,網(wǎng)絡(luò)號(hào)和主機(jī)號(hào),其中不同分類(lèi)具有不同的網(wǎng)絡(luò)號(hào)長(zhǎng)度,并且是固定IP地址網(wǎng)絡(luò)號(hào)主機(jī)號(hào)子網(wǎng)劃通過(guò)在主機(jī)號(hào)字段中拿一部分作為子網(wǎng)號(hào),把兩級(jí)IP地址劃分為三級(jí)IP地址IP地址網(wǎng)絡(luò)號(hào)子網(wǎng)號(hào)主機(jī)要使用子網(wǎng),必須配置子網(wǎng)掩碼。一個(gè)B類(lèi)地址的默認(rèn)子網(wǎng)掩碼為,如果B類(lèi)地址的子網(wǎng)占兩個(gè)比特, ,也就是。注意,外部網(wǎng)絡(luò)看不到子網(wǎng)的存無(wú)分無(wú)分類(lèi)編址CIDR消除了傳統(tǒng)A類(lèi)、BC類(lèi)地址以及劃分子網(wǎng)的概念,使用網(wǎng)絡(luò)前綴和主機(jī)號(hào)來(lái)對(duì)IP地址進(jìn)行IP地址網(wǎng)絡(luò)前綴號(hào)主機(jī)號(hào)CIDR的記法上采用在IP地址后面加上網(wǎng)絡(luò)前綴長(zhǎng)度的方法,例如/20表示前20位為網(wǎng)絡(luò)前CIDR的地址掩碼可以繼續(xù)稱(chēng)為子網(wǎng)掩碼,子網(wǎng)掩碼首1長(zhǎng)度為網(wǎng)絡(luò)前綴的長(zhǎng)一個(gè)CIDR地址塊中有很多地址,一個(gè)CIDR表示的網(wǎng)絡(luò)就可以表示原來(lái)的很多個(gè)網(wǎng)絡(luò),并且在路由表中只需要一個(gè)路由就可以代替原來(lái)的多個(gè)路由,減少了路由表項(xiàng)的數(shù)量。把這種通過(guò)使用網(wǎng)絡(luò)前綴來(lái)減少路由表項(xiàng)的方式稱(chēng)為路由聚合,也稱(chēng)為構(gòu)成超網(wǎng)。在路由表中的項(xiàng)目由“網(wǎng)絡(luò)前綴”和“下一跳地址”組成,在查找時(shí)可能會(huì)得到不止一個(gè)匹配結(jié)果,應(yīng)當(dāng)采用最長(zhǎng)前綴匹配來(lái)確定應(yīng)該匹配哪一個(gè)。地址解析協(xié)議網(wǎng)絡(luò)層實(shí)現(xiàn)主機(jī)之間的通信,而鏈路層實(shí)現(xiàn)具體每段鏈路之間的通信。因此在通信過(guò)程中,IP數(shù)據(jù)報(bào)的源地址和目的地址始終不變,而MAC地址隨著鏈路的改變而改變。ARP實(shí)現(xiàn)由IP地址得到MAC地址每個(gè)主機(jī)都有一個(gè)ARP高速緩存,里面有本局域網(wǎng)上的各主機(jī)和路由器的IP地址到MAC地址的映射表如果主機(jī)A知道主機(jī)BIP地址,但是ARP高速緩存中沒(méi)有該IP地址到MAC地址的映射,此時(shí)主機(jī)A通過(guò)廣播的方式發(fā)送ARP請(qǐng)求分組,主機(jī)B收到該請(qǐng)求后會(huì)發(fā)送ARP響應(yīng)分組給主機(jī)A告知其MAC地址,隨后主機(jī)A向其高速緩存中寫(xiě)入主機(jī)B的IP地址到MAC地址的映射。網(wǎng)際控制報(bào)文協(xié)議ICMP是為了更有效地轉(zhuǎn)發(fā)IP數(shù)據(jù)報(bào)和提高交付成功的機(jī)會(huì)。它封裝在IP數(shù)據(jù)報(bào)中,但是不屬于協(xié)議ICMP報(bào)文分為差錯(cuò)報(bào)告報(bào)文和詢(xún)問(wèn)報(bào)是ICMP的一個(gè)重要應(yīng)用,主要用來(lái)測(cè)試兩臺(tái)主機(jī)之間的連通的原理是通過(guò)向目的主機(jī)發(fā)送ICMPEcho請(qǐng)求報(bào)文,目的主機(jī)收到之后會(huì)發(fā)送Echo回答報(bào)文。會(huì)根據(jù)時(shí)間和成功響應(yīng)的次數(shù)估算出數(shù)據(jù)包往返時(shí)間以及丟包率Traceroute是ICMP的另一個(gè)應(yīng)用,用來(lái)一個(gè)分組從源點(diǎn)到終點(diǎn)的路徑Traceroute發(fā)送的IP數(shù)據(jù)報(bào)封裝的是無(wú)法交付的UDP用戶(hù)數(shù)據(jù)報(bào),并由目的主機(jī)發(fā)送終點(diǎn)不可達(dá)差錯(cuò)報(bào)告報(bào)源主機(jī)向目的主機(jī)發(fā)送一連串的IP數(shù)據(jù)報(bào)。第一個(gè)數(shù)據(jù)報(bào)P1的生存時(shí)間TTL設(shè)置為1,當(dāng)P1到達(dá)路徑上的第一個(gè)路由器R1時(shí),R1收下它并把TTL減1,此時(shí)TTL等于0,R1就把P1丟棄,并向源主機(jī)發(fā)送一個(gè)ICMP源主機(jī)接著發(fā)送第二個(gè)數(shù)據(jù)報(bào)P2TTL設(shè)置2。P2先到達(dá)R1,R1收下TTL1再轉(zhuǎn)發(fā)給R2,R2收下后也把TTL減1,由于此時(shí)TTL等于0,R2就丟棄P2,并向源主機(jī)發(fā)送一個(gè)ICMP時(shí)間超過(guò)差錯(cuò)報(bào)文。不斷執(zhí)行這樣的步驟,直到最后一個(gè)數(shù)據(jù)報(bào)剛剛到達(dá)目的主機(jī),主機(jī)不轉(zhuǎn)發(fā)數(shù)據(jù)報(bào),也不把TTL值減1。但是因?yàn)閿?shù)據(jù)報(bào)封裝的是無(wú)法交付的UDP,因此目的主機(jī)要向源主機(jī)發(fā)送ICMP終點(diǎn)不可達(dá)差錯(cuò)報(bào)告報(bào)文。之后源主機(jī)知道了到達(dá)目的主機(jī)所經(jīng)過(guò)的路由器IP地址以及到達(dá)每個(gè)路由器的往返時(shí)虛擬由于IP地址的緊缺,一個(gè)機(jī)構(gòu)能申請(qǐng)到的IP地址數(shù)往往遠(yuǎn)小于本機(jī)構(gòu)所擁有的主機(jī)數(shù)。并且一個(gè)機(jī)構(gòu)并不需要把所有的主機(jī)接入到外部的互聯(lián)網(wǎng)中,機(jī)構(gòu)內(nèi)的計(jì)算機(jī)可以使用僅在本機(jī)構(gòu)有效的IP地址(地址)。有三個(gè)地址塊~~~使用公用的互聯(lián)網(wǎng)作為本機(jī)構(gòu)各網(wǎng)之間的通信載體。指機(jī)構(gòu)內(nèi)的主機(jī)只與本機(jī)構(gòu)內(nèi)的其它主機(jī)通信;下圖中,場(chǎng)所A和B的通信經(jīng)過(guò)互聯(lián)網(wǎng),如果場(chǎng)所A的主機(jī)X要和另一個(gè)場(chǎng)所B的主機(jī)Y通信,IP數(shù)據(jù)報(bào)的源地址是,目的地址是。數(shù)據(jù)報(bào)先發(fā)送到與互聯(lián)網(wǎng)相連的路由器R1,R1對(duì)內(nèi)部數(shù)據(jù)進(jìn)行加密,然后重新加上數(shù)據(jù)報(bào)的首部,源地址是路由器R1的全球地址,目的地址是路由器R2的全球地址。路由器R2收到數(shù)據(jù)報(bào)后將數(shù)據(jù)部分進(jìn)行,恢復(fù)原來(lái)的數(shù)據(jù)報(bào),此時(shí)目的地址為,就交付給Y。網(wǎng)絡(luò)地址轉(zhuǎn)換網(wǎng)內(nèi)部的主機(jī)使用本地IP地址又想和互聯(lián)網(wǎng)上的主機(jī)通信時(shí),可以使用NAT來(lái)將本地IP轉(zhuǎn)換為全球IP在以前,NAT將本地IP和全球IP一一對(duì)應(yīng),這種方式下?lián)碛衝個(gè)全球IP地址的網(wǎng)內(nèi)最多只可以同時(shí)有n臺(tái)主機(jī)接入互聯(lián)網(wǎng)。為了更有效地利用全球IP地址,現(xiàn)在常用的NAT轉(zhuǎn)換表把傳輸層的端也用上了,使得多個(gè)網(wǎng)內(nèi)部的主機(jī)共用一個(gè)全球IP地址。使用端的NAT也叫做網(wǎng)絡(luò)地址與端口轉(zhuǎn)換NAPT。路由器從功能上可以劃分為:路由選擇和分組轉(zhuǎn)分組轉(zhuǎn)發(fā)結(jié)構(gòu)由三個(gè)部分組成:交換結(jié)構(gòu)、一組輸入端口和一組輸出端從數(shù)據(jù)報(bào)的首部提取目的主機(jī)的IP地址D,得到目的網(wǎng)絡(luò)地址N。若N就是與此路由器直接相連的某個(gè)網(wǎng)絡(luò)地址,則進(jìn)行直接交付;若路由表中有目的地址為D的特定主機(jī)路由,則把數(shù)據(jù)報(bào)傳送給表中所指明的下一跳路由器;若路由表中有到達(dá)網(wǎng)絡(luò)N的路由,則把數(shù)據(jù)報(bào)傳送給路由表中所指明的下一跳路由器;路由選擇協(xié)議都是自適應(yīng)的,能隨著網(wǎng)絡(luò)通信量和拓?fù)浣Y(jié)構(gòu)的變化而自適應(yīng)地進(jìn)行調(diào)互聯(lián)網(wǎng)可以劃分為許多較小的自治系統(tǒng)AS,一個(gè)AS可以使用一種和別的AS不同的路由選擇協(xié)議。自治系統(tǒng)內(nèi)部的路由選擇:RIP自治系統(tǒng)間的路由選擇內(nèi)部網(wǎng)關(guān)協(xié)議RIP是一種基于距離向量的路由選擇協(xié)議。距離是指跳數(shù),直接相連的路由器跳數(shù)為1。跳數(shù)最多為15,超過(guò)15表RIP按固定的時(shí)間間隔僅和相鄰路由器交換自己的路由表,經(jīng)過(guò)若干次交換之后,所有路由器最終會(huì)知道到達(dá)本自治距離向量算對(duì)地址為X的相鄰路由器發(fā)來(lái)的RIP報(bào)文,先修改報(bào)文中的所有項(xiàng)目,把下一跳字段中的地址改為X,并把所有的距離字段加1;對(duì)修改后的RIP報(bào)文中的每一個(gè)項(xiàng)目,進(jìn)行以下步若原來(lái)的路由表中沒(méi)有目的網(wǎng)絡(luò)N,則把該項(xiàng)目添加到路由表否則:若下一跳路由器地址是X,則把收到的項(xiàng)目替換原來(lái)路由表中的項(xiàng)目;否則:若收到的項(xiàng)目中的距離d小于路由表中的距離,則進(jìn)行更新(例如原始路由表項(xiàng)為Net2,5,P,新表項(xiàng)為Net2,4,X,則更新);否則什么若3分鐘還沒(méi)有收到相鄰路由器的更新路由表,則把該相鄰路由器標(biāo)為不可達(dá),即把距離置為16RIP協(xié)議實(shí)現(xiàn)簡(jiǎn)單,開(kāi)銷(xiāo)小。但是RIP能使用的最大距離為15,限制了網(wǎng)絡(luò)的規(guī)模。并且當(dāng)網(wǎng)絡(luò)出現(xiàn)故障時(shí),要經(jīng)內(nèi)部網(wǎng)關(guān)協(xié)議開(kāi)放最短路徑優(yōu)先OSPF,是為了克服RIP的缺點(diǎn)而開(kāi)發(fā)出來(lái)開(kāi)放表示OSPF不受某一家廠商控制,而是公開(kāi)的;最短路徑優(yōu)先表示使用了Dijkstra最短路徑算SPFOSPF具有以下特向本自治系統(tǒng)中的所有路由器發(fā)送信息,這種方法是法發(fā)送的信息就是與相鄰路由器的鏈路狀態(tài),鏈路狀態(tài)包括與哪些路由器相連以及鏈路的度量,度量用費(fèi)用、距離、時(shí)延、帶寬等來(lái)表示。只有當(dāng)鏈路狀態(tài)發(fā)生變化時(shí),路由器才會(huì)發(fā)送信所有路由器都具有全網(wǎng)的拓?fù)浣Y(jié)構(gòu)圖,并且是一致的。相比于RIP,OSPF的更新過(guò)程收斂的很快外部網(wǎng)關(guān)協(xié)議BGP(BorderGatewayProtocol,邊界網(wǎng)關(guān)協(xié)議)AS之間的路由選擇很,主要是由于:互聯(lián)網(wǎng)規(guī)模很大各個(gè)AS不同的路由選擇協(xié)議,無(wú)法準(zhǔn)確定義路徑的度量AS之間的路由選擇必須考慮有關(guān)的策略,比些AS不愿意讓其它AS經(jīng)過(guò)BGP只能尋找一條比較好的路由,而不是最佳路每個(gè)AS都必須配置BGP發(fā)言人,通過(guò)在兩個(gè)相鄰BGP發(fā)言人之間建立TCP連接來(lái)交換路由信息CyC2018提供了該項(xiàng)目的離線(xiàn)閱讀版本,回復(fù)""即可領(lǐng)取。也提供了一份技術(shù)面試復(fù)習(xí)大綱,不僅系統(tǒng)整理了面試知識(shí)點(diǎn),而且標(biāo)注了各個(gè)知識(shí)點(diǎn)的重要程度,從而幫你理清多而雜的面試知識(shí)點(diǎn),回復(fù)"大綱"即可領(lǐng)取。我基本是按照這個(gè)大綱來(lái)進(jìn)行復(fù)習(xí)的,對(duì)我拿到了T頭條等O?r起到很大的幫助。完全可以和我一樣根據(jù)大綱上列的知識(shí)點(diǎn)來(lái)進(jìn)行復(fù)習(xí),就不用看很多不重要的內(nèi)容,也可以知道哪些內(nèi)容很重要從而多安排一些復(fù)習(xí)時(shí)間。網(wǎng)絡(luò)層只把分組發(fā)送到目的主機(jī),但是真正通信的并不是主機(jī)而是主機(jī)中的進(jìn)程。傳輸層提供了進(jìn)程間的邏輯通信,傳輸層向用戶(hù)了下面網(wǎng)絡(luò)層的細(xì)節(jié),使應(yīng)用程序看起來(lái)像是在兩個(gè)傳輸層實(shí)體之間有一條端到端的邏輯通信信道。UDPTCP用戶(hù)數(shù)據(jù)報(bào)協(xié)議UDP(UserDatagramProtocol)是無(wú)連接的,盡最大可能交付,沒(méi)有擁塞控制,面向(對(duì)于應(yīng)用程序傳下來(lái)的報(bào)文不合并也不拆分,只是添加UDP首部),支持一對(duì)一、一對(duì)多、多對(duì)一和多對(duì)多傳輸控制協(xié)議TCP(TransmissionControlProtocol)是面向連接的,提供可靠交付,有流量控制,擁塞控塊),每一條TCP連接只能是點(diǎn)對(duì)點(diǎn)的(一對(duì)一)。UDP首部字段只有8個(gè)字節(jié),包括源端口、目的端口、長(zhǎng)度、檢驗(yàn)和。12字節(jié)的偽首部是為了計(jì)算檢驗(yàn)和臨時(shí)添加TCP序號(hào):用于對(duì)字節(jié)流進(jìn)行編號(hào),例如序號(hào)為301,表示第一個(gè)字節(jié)的編號(hào)為301,如果攜帶的數(shù)據(jù)長(zhǎng)度為字節(jié),那么下一個(gè)報(bào)文段的序號(hào)應(yīng)為401確認(rèn)號(hào):期望收到的下一個(gè)報(bào)文段的序號(hào)。例如B正確收到A發(fā)送來(lái)的一個(gè)報(bào)文段,序號(hào)為501,攜帶的數(shù)據(jù)長(zhǎng)度為200字節(jié),因此B期望下一個(gè)報(bào)文段的序號(hào)為701,B發(fā)送給A的確認(rèn)報(bào)文段中確認(rèn)號(hào)就為701。數(shù)據(jù)偏移:指的是數(shù)據(jù)部分距離報(bào)文段起始處的偏移量,實(shí)際上指的是首部的長(zhǎng)確認(rèn)ACKACK=1時(shí)確認(rèn)號(hào)字段有效,否則無(wú)效。TCP規(guī)定,在連接建立后所有傳送的報(bào)文段都必ACK1同步SYN:在連接建立時(shí)用來(lái)同步序號(hào)。當(dāng)SYN=1,ACK=0時(shí)表示這是接請(qǐng)求報(bào)文段。若對(duì)方同意建立連接,則響應(yīng)報(bào)文中SYN=1,ACK=1。終止FIN:用來(lái)釋放接,當(dāng)FIN=1時(shí),表示此報(bào)文段的發(fā)送方的數(shù)據(jù)已發(fā)送完畢,并要求釋放連接。窗口:窗口值作為接收方讓發(fā)送方設(shè)置其發(fā)送窗口的依據(jù)。之所以要有這個(gè)限制,是因?yàn)榻邮辗降臄?shù)據(jù)緩存空間是有限的。TCP的三次假設(shè)A為客戶(hù)端,B為服務(wù)器端首先B處于LISTEN()狀態(tài),等待客戶(hù)的連接請(qǐng)求AB發(fā)送連接請(qǐng)求報(bào)文,SYN=1,ACK=0,選擇一個(gè)初始的序號(hào)xB收到連接請(qǐng)求報(bào)文,如果同意建立連接,則向A發(fā)送連接確認(rèn)報(bào)文,SYN=1,ACK=1,確認(rèn)號(hào)為x+1,同時(shí)也選擇一個(gè)初始的序號(hào)y。A收到B的連接確認(rèn)報(bào)文后,還要向B發(fā)出確認(rèn),確認(rèn)號(hào)為y+1,序號(hào)為x+1B收到A的確認(rèn)后,連接建立三次握手的第三次握手是為了防止失效的連接請(qǐng)求到達(dá)服務(wù)器,讓服務(wù)器錯(cuò)誤打開(kāi)連客戶(hù)端發(fā)送的連接請(qǐng)求如果在網(wǎng)絡(luò)中滯留,那么就會(huì)隔很長(zhǎng)一段時(shí)間才能收到服務(wù)器端發(fā)回的連接確認(rèn)??蛻?hù)端等一個(gè)超時(shí)重傳時(shí)間之后,就會(huì)重新請(qǐng)求連接。但是這個(gè)滯留的連接請(qǐng)求最后還是會(huì)到達(dá)服務(wù)器,如果不進(jìn)行三次握手,那么服務(wù)器就會(huì)打開(kāi)兩個(gè)連接。如果有第三次握手,客戶(hù)端會(huì)忽略服務(wù)器之后發(fā)送的對(duì)滯留連接請(qǐng)求的連接確認(rèn),不TCP的四次以下描述不討論序號(hào)和確認(rèn)號(hào),因?yàn)樾蛱?hào)和確認(rèn)號(hào)的規(guī)則比較簡(jiǎn)單。并且不討論ACK,因?yàn)锳CK在連接建立之后都為1。A發(fā)送連接釋放報(bào)文,F(xiàn)IN=1B收到之后發(fā)出確認(rèn),此時(shí)TCP屬于半關(guān)閉狀態(tài),BA發(fā)送數(shù)據(jù)但是A不能向B發(fā)送數(shù)據(jù)。當(dāng)B不再需要連接時(shí),發(fā)送連接釋放報(bào)文,F(xiàn)IN=1。A收到后發(fā)出確認(rèn),進(jìn)入TIME-WAIT狀態(tài),等待2MSL(最大報(bào)文存活時(shí)間)后釋放連B收到A的確認(rèn)后釋放連四次揮手的客戶(hù)端發(fā)送了FIN連接釋放報(bào)文之后,服務(wù)器收到了這個(gè)報(bào)文,就進(jìn)入了CLOSE-WAIT狀態(tài)。這個(gè)狀態(tài)是為了讓服務(wù)器端發(fā)送還未傳送完畢的數(shù)據(jù),傳送完畢之后,服務(wù)器會(huì)發(fā)送FIN連接釋放報(bào)文。客戶(hù)端接收到服務(wù)器端的FIN報(bào)文后進(jìn)入此狀態(tài),此時(shí)并不是直接進(jìn)入CLOSED狀態(tài),還需要等待一個(gè)時(shí)間計(jì)時(shí)器設(shè)置的時(shí)間2MSL。這么做有兩個(gè)理由:確保最后一個(gè)確認(rèn)報(bào)文能夠到達(dá)。如果B沒(méi)收到A發(fā)送來(lái)的確認(rèn)報(bào)文,那么就會(huì)重新發(fā)送連接釋放請(qǐng)求報(bào)A等待一段時(shí)間就是為了處理這種情況的發(fā)等待一段時(shí)間是為了讓本連接持續(xù)時(shí)間內(nèi)所產(chǎn)生的所有報(bào)從網(wǎng)絡(luò)中,使得下一個(gè)新的連接不會(huì)出現(xiàn)舊的連接請(qǐng)求報(bào)文。TCPTCP使用超時(shí)重傳來(lái)實(shí)現(xiàn)可靠傳輸:如果一個(gè)已經(jīng)發(fā)送的報(bào)文段在超時(shí)時(shí)間內(nèi)沒(méi)有收到確認(rèn),那么就重傳這個(gè)報(bào)文一個(gè)報(bào)文段從發(fā)送再到接收到確認(rèn)所經(jīng)過(guò)的時(shí)間稱(chēng)為往返時(shí)間RTT,平均往返時(shí)間RTTs計(jì)算如下其中,0≤a<1,RTTs隨著a的增加更容易受到RTT的影響。超時(shí)時(shí)間RTO應(yīng)該略大于RTTs,TCP使用的超時(shí)時(shí)間計(jì)算如下其中RTTd為偏差 平均值TCP窗口是緩存的一部分,用來(lái)暫時(shí)存放字節(jié)流。發(fā)送方和接收方各有一個(gè)窗口,接收方通過(guò)TCP報(bào)文段中的窗口字段發(fā)送窗口內(nèi)的字節(jié)都允許被發(fā)送,接收窗口內(nèi)的字節(jié)都允許被接收。如果發(fā)送窗口左部的字節(jié)已經(jīng)發(fā)送并且收到了認(rèn),那么就將發(fā)送窗口向右滑動(dòng)一定距離,直到左部第一個(gè)字節(jié)不是已發(fā)送并且已確認(rèn)的狀態(tài);接收窗口的滑動(dòng)類(lèi)似,接收窗口只會(huì)對(duì)窗口內(nèi)最后一個(gè)按序到達(dá)的字節(jié)進(jìn)行確認(rèn),例如接收窗口已經(jīng)收到的字節(jié)為{31,34,35},其中按序到達(dá),而{34,35}就不是,因此只對(duì)字節(jié)31進(jìn)行確認(rèn)。發(fā)送方得到一個(gè)字節(jié)的確認(rèn)之后,就知道這個(gè)字節(jié)之前TCP流量控制是為了控制發(fā)送方發(fā)送速率,保證接收方來(lái)得及接接收方發(fā)送的確認(rèn)報(bào)文中的窗口字段可以用來(lái)控制發(fā)送方窗口大小,從而影響發(fā)送方的發(fā)送速率。將窗口字段設(shè)0,則發(fā)送方不能發(fā)送數(shù)TCP如果網(wǎng)絡(luò)出現(xiàn)擁塞,分組將會(huì)丟失,此時(shí)發(fā)送方會(huì)繼續(xù)重傳,從而導(dǎo)致網(wǎng)絡(luò)擁塞程度更高。因此當(dāng)出現(xiàn)擁塞時(shí),應(yīng)當(dāng)控制發(fā)送方的速率。這一點(diǎn)和流量控制很像,但是出發(fā)點(diǎn)不同。流量控制是為了讓接收方能來(lái)得及接收,而擁塞控制是為了降低整個(gè)網(wǎng)絡(luò)的擁塞程度。TCP主要通過(guò)四個(gè)算法來(lái)進(jìn)行擁塞控制:慢開(kāi)始、擁塞避免、快重傳、快恢發(fā)送方需要一個(gè)叫做擁塞窗口(cnd)的狀態(tài)變量,注意擁塞窗口與發(fā)送方窗口的區(qū)別:擁塞窗口只是一個(gè)狀態(tài)變量,實(shí)際決定發(fā)送方能發(fā)送多少數(shù)據(jù)的是發(fā)送方窗口。為了便于討論,做如下假接收方有足夠大的接收緩存,因此不會(huì)發(fā)生流量控雖然TCP的窗口基于字節(jié),但是這里設(shè)窗口的大小單位為報(bào)文慢開(kāi)始與擁塞避發(fā)送的最初執(zhí)行慢開(kāi)始,令cwnd=1,發(fā)送方只能發(fā)送1個(gè)報(bào)文段;當(dāng)收到確認(rèn)后,將cwnd加倍,因此之后發(fā)送方能夠發(fā)送的報(bào)文段數(shù)量為:2、4、8...注意到慢開(kāi)始每個(gè)輪次都將cnd加倍,這樣會(huì)讓cwnd增長(zhǎng)速度非???,從而使得發(fā)送方發(fā)送的速度增長(zhǎng)速度過(guò)快,網(wǎng)絡(luò)擁塞的可能性也就更高。設(shè)置一個(gè)慢開(kāi)始門(mén)限ssthrh,當(dāng)cwnd>=sstrh時(shí),進(jìn)入擁塞避免,每個(gè)輪次只將cwnd加1。如果出現(xiàn)了超時(shí),則令ssthresh=cwnd/2,然后重新執(zhí)行慢開(kāi)快重傳與快在接收方,要求每次接收到報(bào)文段都應(yīng)該對(duì)最后一個(gè)已收到的有序報(bào)文段進(jìn)行確認(rèn)。例如已經(jīng)接收到M1和M2,此時(shí)收到M4,應(yīng)當(dāng)發(fā)送對(duì)M2的確認(rèn)。在發(fā)送方,如果收到三個(gè)重復(fù)確認(rèn),那么可以知道下一個(gè)報(bào)文段丟失,此時(shí)執(zhí)行快重傳,立即重傳下一個(gè)報(bào)文段。例如收到三個(gè)M2,則3丟失,立即重傳M3。在這種情況下,只是丟失個(gè)別報(bào)文段,而不是網(wǎng)絡(luò)擁塞。因此執(zhí)行快恢復(fù),令ssthresh=cwnd/2,cwnd=慢開(kāi)始和快恢復(fù)的快慢指的是cwnd的設(shè)定值,而不是cwnd的增長(zhǎng)速率。慢開(kāi)始cwnd設(shè)定為1,而快恢復(fù)設(shè)定為ssthreshCyC2018提供了該項(xiàng)目的離線(xiàn)閱讀版本,回復(fù)""即可領(lǐng)取。也提供了一份技術(shù)面試復(fù)習(xí)大綱,不僅系統(tǒng)整理了面試知識(shí)點(diǎn),而且標(biāo)注了各個(gè)知識(shí)點(diǎn)的重要程度,從而幫你理清多而雜的面試知識(shí)點(diǎn),回復(fù)"大綱"即可領(lǐng)取。我基本是按照這個(gè)大綱來(lái)進(jìn)行復(fù)習(xí)的,對(duì)我拿到了T頭條等O?r起到很大的幫助。完全可以和我一樣根據(jù)大綱上列的知識(shí)點(diǎn)來(lái)進(jìn)行復(fù)習(xí),就不用看很多不重要的內(nèi)容,也可以知道哪些內(nèi)容很重要從而多安排一些復(fù)習(xí)時(shí)間。DNS是一個(gè)分布式數(shù)據(jù)庫(kù),提供了主機(jī)名和IP地址之間相互轉(zhuǎn)換的服務(wù)。這里的分布式數(shù)據(jù)庫(kù)是指,每個(gè)站點(diǎn)只保具有層次結(jié)構(gòu),從上到下依次為:根、頂級(jí)、二級(jí)DNS可以使用UDP或者TCP進(jìn)行傳輸,使用的端都為53。大多數(shù)情況下DNS使用UDP進(jìn)行傳輸,這就要求解析器和服務(wù)器都必須自己處理超時(shí)和重傳從而保證可靠性。在兩種情況下會(huì)使用TCP進(jìn)行傳輸:如果返回的響應(yīng)超過(guò)的512字節(jié)(UDP最大只支持512字節(jié)的數(shù)據(jù))區(qū)域傳送(區(qū)域傳送是主服務(wù)器向輔助服務(wù)器傳送變化的那部分?jǐn)?shù)據(jù))FTP使用TCP進(jìn)行連接,它需要兩個(gè)連接來(lái)傳送一個(gè)文 21等待客戶(hù)端的連接,客戶(hù)端主動(dòng)建立連接后,使用這個(gè)連接將客戶(hù)端令傳數(shù)據(jù)連接:用來(lái)傳送一個(gè)文件數(shù)根據(jù)數(shù)據(jù)連接是否是服務(wù)器端主動(dòng)建立,F(xiàn)TP有主動(dòng)和兩種模式主動(dòng)模式:服務(wù)器端主動(dòng)建立數(shù)據(jù)連接,其中服務(wù)器端的 為20,客戶(hù)端的 隨機(jī),但是必須大1024,因?yàn)?~1023是熟知 模式:客戶(hù)端主動(dòng)建立數(shù)據(jù)連接,其中客戶(hù)端的 由客戶(hù)端自己指定,服務(wù)器端的 隨機(jī)主動(dòng)模式要求客戶(hù)端開(kāi)放端給服務(wù)器端,需要去配置客戶(hù)端的。模式只需要服務(wù)器端開(kāi)放端即可,無(wú)需客戶(hù)端配置。但是模式會(huì)導(dǎo)致服務(wù)器端的安全性減弱,因?yàn)殚_(kāi)放了過(guò)多的端。DHCP(DynamicHostCon?gurationProtocol)提供了即插即用的連網(wǎng)方式,用戶(hù)不再需要手動(dòng)配置IP地址等信DHCP配置的內(nèi)容不僅是IP地址,還包括子網(wǎng)掩碼、網(wǎng)關(guān)IP地址DHCP工作過(guò)程如下客戶(hù)端發(fā)送Discover報(bào)文,該報(bào)文的目的地址為55:67,源地址為:68,被放入中,該報(bào)文被廣播到同一個(gè)子網(wǎng)的所有主機(jī)上。如果客戶(hù)端和DHCP服務(wù)器不在同一個(gè)子網(wǎng),就需要使用中。DHCP服務(wù)器收到Discover報(bào)文之后,發(fā)送O?er報(bào)文給客戶(hù)端,該報(bào)文包含了客戶(hù)端所需要的信息。因?yàn)榭蛻?hù)端可能收到多個(gè)DHCP服務(wù)器提供的信息,因此客戶(hù)端需要進(jìn)行選擇。如果客戶(hù)端選擇了某個(gè)DHCP服務(wù)器提供的信息,那么就發(fā)送Request報(bào)文給該DHCP服務(wù)器DHCP服務(wù)器發(fā)送Ack報(bào)文,表示客戶(hù)端此時(shí)可以使用提供給它的信NET用于登錄到主機(jī)上,并且主機(jī)上的輸出也會(huì)返回NET可以適應(yīng)許多計(jì)算機(jī)和操作系統(tǒng)的差異,例如不同操作系統(tǒng)系統(tǒng)的換行符定一個(gè)電子郵件系統(tǒng)由三部分組成:用戶(hù)、郵件服務(wù)器以及郵件協(xié)議郵件協(xié)議包含發(fā)送協(xié)議和協(xié)議,發(fā)送協(xié)議常用SMTP,協(xié)議常用POP3和IMAPSMTP只能發(fā)送ASCII碼,而互聯(lián)網(wǎng)郵件擴(kuò)充MIME可以發(fā)送二進(jìn)制文件。MIME并沒(méi)有改動(dòng)或者取代SMTP,而是增加郵件主體的結(jié)構(gòu),定義了非ASCII碼的編碼規(guī)則。POP3的特點(diǎn)是只要用戶(hù)從服務(wù)器上了郵件,就把該郵件刪除IMAP協(xié)議中客戶(hù)端和服務(wù)器上的郵件保持同步,如果不手動(dòng)刪除郵件,那么服務(wù)器上的郵件也不會(huì)被刪除。IMAP應(yīng)應(yīng)用層協(xié)端傳輸層協(xié)備解長(zhǎng)度超過(guò)512字節(jié)時(shí)使用動(dòng)態(tài)主機(jī)配置協(xié)簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)文件傳送協(xié)控制連接21,數(shù)據(jù)連接終端協(xié)超文本傳送簡(jiǎn)單郵件傳送協(xié)郵件協(xié)網(wǎng)際報(bào)文存取協(xié)WebDHCP配置主機(jī)信假設(shè)主機(jī)最開(kāi)始沒(méi)有IP地址以及其它信息,那么就需要先使用DHCP來(lái)獲取主機(jī)生成一個(gè)DHCP請(qǐng)求報(bào)文,并將這個(gè)報(bào)文放入具有目的端口67和源端口68UDP報(bào)文段中該報(bào)文段則被放入在一個(gè)具有廣播IP目的地址(55)和源IP地址()的IP數(shù)據(jù)報(bào)中。該數(shù)據(jù)報(bào)則被放置在MAC幀中,該幀具有目的地址FF:FF:FF:FF:FF:FF,將廣播到與交換機(jī)連接的所有設(shè)備。連接在交換機(jī)的DHCP服務(wù)器收到廣播幀之后,不斷地向上分解得到IP數(shù)據(jù)報(bào)、UDP報(bào)文段、DHCP請(qǐng)求報(bào)文,之后生成DHCPACK報(bào)文,該報(bào)文包含以下信息:IP地址、DNS服務(wù)器的IP地址、默認(rèn)網(wǎng)關(guān)路由器的IP地址和子網(wǎng)掩碼。該報(bào)文被放入U(xiǎn)DP報(bào)文段中,UDP報(bào)文段有被放入IP數(shù)據(jù)報(bào)中,最后放入MAC幀中。該幀的目的地址是請(qǐng)求主機(jī)的MAC地址,因?yàn)榻粨Q機(jī)具有習(xí)能力,之前主機(jī)發(fā)送了廣播幀之后就記錄了MAC地址到其轉(zhuǎn)發(fā)接口的交換表項(xiàng),因此現(xiàn)在交換機(jī)就可以直接知道應(yīng)該向哪個(gè)接口發(fā)送該幀。主機(jī)收到該幀后,不斷分解得到DHCP報(bào)文。之后就配置它的IP地址、子網(wǎng)掩碼和DNS服務(wù)器的IP地址,并在其IP轉(zhuǎn)中安裝默認(rèn)網(wǎng)關(guān)。ARPMAC地主機(jī)通過(guò)瀏覽器生成一個(gè)TCP套接字,套接字向HTTP服務(wù)器發(fā)送HTTP請(qǐng)求。為了生成該套接字,主機(jī)需要知道的對(duì)應(yīng)的IP地址。主機(jī)生成一個(gè)DNS查詢(xún)報(bào)文,該報(bào)文具有53號(hào)端口,因?yàn)镈NS服務(wù)器的端 是53。該DNS查詢(xún)報(bào)文被放入目的地址為DNS服務(wù)器IP地址的IP數(shù)據(jù)報(bào)中。該IP數(shù)據(jù)報(bào)被放入一個(gè)以太網(wǎng)幀中,該幀將發(fā)送到網(wǎng)關(guān)路由DHCP過(guò)程只知道網(wǎng)關(guān)路由器的IP地址,為了獲取網(wǎng)關(guān)路由器的MAC地址,需要使用ARP協(xié)議主機(jī)生成一個(gè)包含目的地址為網(wǎng)關(guān)路由器IP地址的ARP查詢(xún)報(bào)文,將該ARP查詢(xún)報(bào)文放入一個(gè)具有廣播目的網(wǎng)關(guān)路由器接收到該幀后,不斷向上分解得到ARP報(bào)文,發(fā)現(xiàn)其中的IP地址與其接口的IP地址匹配,因此就發(fā)送一個(gè)ARP回答報(bào)文,包含了它的MAC地址,發(fā)回給主機(jī)。DNS知道了網(wǎng)關(guān)路由器的MAC地址之后,就可以繼續(xù)DNS的解析過(guò)程了網(wǎng)關(guān)路由器接收到包含DNS查詢(xún)報(bào)文的以太網(wǎng)幀后,抽取出IP數(shù)據(jù)報(bào),并根據(jù)轉(zhuǎn)決定該IP數(shù)據(jù)該轉(zhuǎn)經(jīng)配置了網(wǎng)關(guān)路由器到達(dá)DNS服務(wù)器的路由表項(xiàng)。到達(dá)DNS服務(wù)器之后,DNS服務(wù)器抽取出DNS查詢(xún)報(bào)文,并在DNS數(shù)據(jù)庫(kù)中查找待解析的找到DNS記錄之后,發(fā)送DNS回答報(bào)文,將該回答報(bào)文放入U(xiǎn)DP報(bào)文段中,然后放入IP數(shù)據(jù)報(bào)中,通過(guò)路HTTP請(qǐng)求頁(yè)有了HTTP服務(wù)器的IP地址之后,主機(jī)就能夠生成TCP套接字,該套接字將用于向Web服務(wù)器發(fā)送HTTPGET報(bào)文。在生成TCP套接字之前,必須先與HTTP服務(wù)器進(jìn)行三次握手來(lái)建立連接。生成一個(gè)具有目的端口80TCPSYN報(bào)文段,并向HTTP服務(wù)器發(fā)送該報(bào)文段。HTTP服務(wù)器收到該報(bào)文段之后,生成TCPSYNACK報(bào)文段,發(fā)回給主機(jī)。連接建立之后,瀏覽器生成HTTPGET報(bào)文,并交付給HTTP服務(wù)器。HTTP服務(wù)器從TCP套接字HTTPGET報(bào)文,生成一個(gè)HTTP響應(yīng)報(bào)文,將Web頁(yè)面內(nèi)容放入報(bào)文主體瀏覽器收到HTTP響應(yīng)報(bào)文后,抽取出Web頁(yè)面內(nèi)容,之后進(jìn)行渲染,顯示W(wǎng)eb頁(yè)面CyC2018提供了該項(xiàng)目的離線(xiàn)閱讀版本,回復(fù)""即可領(lǐng)取。也提供了一份技術(shù)面試復(fù)習(xí)大綱,不僅系統(tǒng)整理了面試知識(shí)點(diǎn),而且標(biāo)注了各個(gè)知識(shí)點(diǎn)的重要程度,從而幫你理清多而雜的面試知識(shí)點(diǎn),回復(fù)"大綱"即可領(lǐng)取。我基本是按照這個(gè)大綱來(lái)進(jìn)行復(fù)習(xí)的,對(duì)我拿到了T頭條等O?r起到很大的幫助。完全可以和我一樣根據(jù)大綱上列的知識(shí)點(diǎn)來(lái)進(jìn)行復(fù)習(xí),就不用看很多不重要的內(nèi)容,也可以知道哪些內(nèi)容很重要從而多安排一些復(fù)習(xí)時(shí)間。計(jì)算機(jī)網(wǎng)絡(luò),JamesF.Kurose,KeithW.Ross,庫(kù),等.計(jì)算機(jī)網(wǎng)絡(luò):自頂向下方法[M].機(jī)械工業(yè),2014.W.RichardStevens.TCP/IP詳解.卷1,協(xié)議[M].機(jī)械工業(yè),2006.ActivevsPassiveFTPMode:WhichOneisMoreSecure?ActiveandPassiveFTPTransfersDe?ned-KBArticle#1138HowDHCPworksandDHCPInterviewQuestionsandWhatisprocessofDORAinDHCP?WhatisDHCPServer?TacklingemissionstargetsinTokyoWhatdoesmyISPknowwhenIuseTor?puterNetworking[1]-ComputerNetworksandtheP2P網(wǎng)絡(luò)概述CircuitSwitching(a)Circuitswitching.(b)Packet1.2URI包含URL和URN請(qǐng)求和響應(yīng)請(qǐng)求報(bào)響應(yīng)報(bào)二、HTTP客戶(hù)端發(fā)送的請(qǐng)求報(bào)文第一行為請(qǐng)求行,包含了方法字獲取資當(dāng)前網(wǎng)絡(luò)請(qǐng)求中,絕大部分使用的是GET方法獲取報(bào)文首GET方法類(lèi)似,但是不返回報(bào)文實(shí)體主體部主要用于確認(rèn)URL的有效性以及資源更新的日期時(shí)間傳輸實(shí)體主POST主要用來(lái)傳輸數(shù)據(jù),而GET主要用來(lái)獲取資源POSTGET的比較請(qǐng)見(jiàn)第九章。上傳文由于自身不帶驗(yàn)證機(jī)制,任何人都可以上傳文件,因此存在安全性問(wèn)題,一般不使用該方PUTPUT/new.htmlHTTP/1.1Content-length:16<p>New對(duì)資源進(jìn)行部分修PUT也可以用于修改資源,但是只能完全替代原始資源,PATCH允許部分修改Content-Type:application/exampleIf-Match:"e0023aa4e"Content-Length:[descriptionof刪除文PUT功能相反,并且同樣不帶驗(yàn)證機(jī)DELETEDELETE/file.html查詢(xún)支持的查詢(xún)指定的URL能夠支持的方法。

這樣的內(nèi)容要求在與服務(wù)器通信時(shí)建立隧使用SSL(SecureSocketsLayer,接層)和TLS(TransportLayerSecurity,傳輸層安全)協(xié)議把通信內(nèi)容 追蹤路服務(wù)器會(huì)將通信路徑返回給客戶(hù)發(fā)送請(qǐng)求時(shí),在Max-Forwards首部字段中填入數(shù)值,每經(jīng)過(guò)一個(gè)服務(wù)器就會(huì)減1,當(dāng)數(shù)值為0時(shí)就停止傳輸。通常不會(huì)使用TRACE,并且它容易受到XST(Cross-SiteTracing,跨站追蹤)。三、HTTP服務(wù)器返回的響應(yīng)報(bào)文中第一行為狀態(tài)行,包含了狀態(tài)碼以及原因短語(yǔ),用來(lái)告知客戶(hù)端請(qǐng)求的結(jié)狀態(tài)類(lèi)含Informational(信息性狀態(tài)碼接收的請(qǐng)求正在處Success(成功狀態(tài)碼請(qǐng)求正常處理完Redirection(重定向狀態(tài)碼需要進(jìn)行附加操作以完成Error(客戶(hù)端錯(cuò)誤狀態(tài)碼)服務(wù)器無(wú)法處理請(qǐng)ServerError(服務(wù)器錯(cuò)誤狀態(tài)碼服務(wù)器處理請(qǐng)求出1XX信100Continue:表明到目前為止都很正常,客戶(hù)端可以繼續(xù)發(fā)送請(qǐng)求或者忽略這個(gè)響2XX成200204NoContent:請(qǐng)求已經(jīng)成功處理,但是返回的響應(yīng)報(bào)文不包含實(shí)體的主體部分。一般在只需要從客戶(hù)端206PartialContent:表示客戶(hù)端進(jìn)行了范圍請(qǐng)求,響應(yīng)報(bào)文包含由Content-Range指定范圍的實(shí)體內(nèi)3XX重定301MovedPermanently:永久性重302Found:臨時(shí)性重303SeeOther:和302有著相同的功能,但是303明確要求客戶(hù)端應(yīng)該采用GET方法獲取資注:雖然HTTP協(xié)議規(guī)定301、302狀態(tài)下重定向時(shí)不允許把POST方法改成GET方法,但是大多數(shù)瀏覽器都會(huì)在301、302和303狀態(tài)下的重定向把POST方法改成GET方法。304NotModi?ed:如果請(qǐng)求報(bào)文首部包含一些條件,例如:If-Match,If-Modi?ed-Since,If-None-Match,If-Range,If-Unmodi?ed-Since,如果不滿(mǎn)足條件,則服務(wù)器會(huì)返回304狀態(tài)碼。307TemporaryRedirect:臨時(shí)重定向,與302的含義類(lèi)似,但是307要求瀏覽器不會(huì)把重定向請(qǐng)POST方法改成GET方法4XX客戶(hù)端400BadRequest:請(qǐng)求報(bào)文中存在語(yǔ)法錯(cuò)誤401Unauthorized:該狀態(tài)碼表示發(fā)送的請(qǐng)求需要有認(rèn)證信息(BASIC認(rèn)證、DIGEST認(rèn)證)。如果之前已進(jìn)403Forbidden:請(qǐng)求被404Not5XX服務(wù)器500InternalServerError503ServiceUnavailable:服務(wù)器暫時(shí)處于超負(fù)載或正在進(jìn)行停機(jī),現(xiàn)在無(wú)法處理請(qǐng)求四、HTTP有4種類(lèi)型的首部字段:通用首部字段、請(qǐng)求首部字段、響應(yīng)首部字段和實(shí)體首部字段。通用首部字首部字段說(shuō)Cache-控制緩存的控制不再轉(zhuǎn)發(fā)給的首部字段、管理持久連創(chuàng)建報(bào)文的日期時(shí)報(bào)文指報(bào)文末端的首部一Transfer-指定報(bào)文主體的傳輸編碼升級(jí)為其他服務(wù)器的相關(guān)信錯(cuò)誤通請(qǐng)求首部字首部字段說(shuō)用戶(hù)可處理的類(lèi)Accept-優(yōu)先的字符Accept-優(yōu)先的內(nèi)容Accept-優(yōu)先的語(yǔ)言(自然語(yǔ)言Web認(rèn)證信期待服務(wù)器的特定行用戶(hù)的電子郵箱地請(qǐng)求資源所在服務(wù)If-比較實(shí)體標(biāo)記If-Modi?ed-比較資源的更新時(shí)If-None-比較實(shí)體標(biāo)記(與If-Match相反If-資源未更新時(shí)發(fā)送實(shí)體Byte的范圍請(qǐng)If-Unmodi?ed-比較資源的更新時(shí)間(與If-Modi?ed-Since相反Max-最大傳輸逐-服務(wù)器要求客戶(hù)端的認(rèn)證實(shí)體的字節(jié)范圍請(qǐng)對(duì)請(qǐng)求中URI的原始獲取傳輸編碼的優(yōu)先User-HTTP客戶(hù)端程序的信響應(yīng)首部字首部字段說(shuō)Accept-是否接受字節(jié)范圍請(qǐng)推算資源創(chuàng)建經(jīng)過(guò)時(shí)資源的匹配令客戶(hù)端重定向至指定-服務(wù)器對(duì)客戶(hù)端的認(rèn)證Retry-對(duì)再次發(fā)起請(qǐng)求的時(shí)機(jī)要HTTP服務(wù)器的安裝信服務(wù)器緩存的管理信WWW-服務(wù)器對(duì)客戶(hù)端的認(rèn)證信實(shí)體首部字首部字段說(shuō)資源可支持的HTTP方Content-實(shí)體主體適用的編碼方Content-實(shí)體主體的自然語(yǔ)Content-實(shí)體主體的Content-替代對(duì)應(yīng)資源的Content-實(shí)體主體的報(bào)Content-實(shí)體主體的位置范Content-實(shí)體主體的類(lèi)實(shí)體主體過(guò)期的日期時(shí)Last-資源的最后修改日期時(shí)連接管短連接與長(zhǎng)當(dāng)瀏覽器一個(gè)包含多張的HTML頁(yè)面時(shí),除了請(qǐng)求的HTML頁(yè)面資源,還會(huì)請(qǐng)求資源。如果每進(jìn)行一次HTTP通信就要新建一個(gè)TCP連接,那么開(kāi)銷(xiāo)會(huì)很大。長(zhǎng)連接只需要建立一次TCP連接就能進(jìn)行多次HTTP通信:close從HTTP/1.1開(kāi)始默認(rèn)是長(zhǎng)連接的,如果要斷開(kāi)連接,需要由客戶(hù)端或者服務(wù)器端提出:closeHTTP/1.1之前默認(rèn)是短連接的,如果需要使用長(zhǎng)連接,則使用Connection:Keep-Alive流水默認(rèn)情況下,HTTP請(qǐng)求是按順序發(fā)出的,下一個(gè)請(qǐng)求只有在當(dāng)前請(qǐng)求收到響應(yīng)之后才會(huì)被發(fā)出。由于受到網(wǎng)絡(luò)延遲流水線(xiàn)是在同一條長(zhǎng)連接上連續(xù)發(fā)出請(qǐng)求,而不用等待響應(yīng)返回,這樣可以減少延HTTP協(xié)議是無(wú)狀態(tài)的,主要是為了讓HTTP協(xié)議盡可能簡(jiǎn)單,使得它能夠處理大量事務(wù)。HTTP/1.1引入 是服務(wù)器發(fā)送到用戶(hù)瀏覽器并保存在本地的一小塊數(shù)據(jù),它會(huì)在瀏覽器之后向同一服務(wù)器再次發(fā)起請(qǐng)求時(shí)被攜帶上,用于告知服務(wù)端兩個(gè)請(qǐng)求是否來(lái)自同一瀏覽器。由于之后每次請(qǐng)求都會(huì)需要攜帶 額外的性能開(kāi)銷(xiāo)(尤其是在移動(dòng)環(huán)境下)。曾一度用于客戶(hù)端數(shù)據(jù)的,因?yàn)楫?dāng)時(shí)并沒(méi)有其它合適的辦法而作為唯一的,但現(xiàn)在隨著現(xiàn)代瀏覽器開(kāi)始支持各種各樣的方式, 漸漸被淘汰。新的瀏覽器API經(jīng)允許開(kāi)發(fā)者直接將數(shù)據(jù)到本地,如使用ebstoageAPI(本地和會(huì)話(huà))或IndedDB。用會(huì)話(huà)狀態(tài)管理(如用戶(hù)登錄狀態(tài)、購(gòu)物車(chē)、游戲分?jǐn)?shù)或其它需要記錄的信息)個(gè)性化設(shè)置(如用戶(hù)自定義設(shè)置、等)瀏覽器行為(如分析用戶(hù)行為等創(chuàng)建過(guò)服務(wù)器發(fā)送的響應(yīng)報(bào)文包含 首部字段,客戶(hù)端得到響應(yīng)報(bào)文后 內(nèi)容保存到瀏覽器中HTTP/1.0HTTP/1.0200Content-type: : : [page : =choco;分會(huì)話(huà) :瀏覽器關(guān)閉之后它會(huì)被自動(dòng)刪除,也就是說(shuō)它僅在會(huì)話(huà)期內(nèi)有效持久 :指定過(guò)期時(shí)間(Expires)或有效期(max-age)之后就成為了持久性 :id=a3fWa;Expires=Wed,21Oct201507:28:00作用 Path標(biāo)識(shí)指定了主機(jī)下的哪些路徑可以接受 (該URL路徑必須存在于請(qǐng)求URL中)。以字符%x2F("/")作為路徑分隔符,子路徑也會(huì)被匹配。例如,設(shè)置Path=/docs,則以下地址都會(huì)匹配:瀏覽器通 屬性可創(chuàng)建新 ,也可通過(guò)該屬性非HttpOnly標(biāo)記 ...==.標(biāo)記為HttpOnly 不能被JavaScript調(diào)用??缯?XSS)常常使用JavaScript.API竊取用戶(hù) 信息,因此使用HttpOnly標(biāo)記可以在一定程度上避免XSS. :id=a3fWa;Expires=Wed,21Oct201507:28:00GMT;Secure;標(biāo)記為Secure的 只能通過(guò)被HTTPS協(xié)議加密過(guò)的請(qǐng)求發(fā)送給服務(wù)端。但即便設(shè)置了Secure標(biāo)記,敏感信 有其固有的不安全性,Secure標(biāo)記也無(wú)法提供確實(shí)的安全保障。 在用戶(hù)瀏覽器中,也可以利用Session在服務(wù)器端,在服務(wù)器端的信Session可以在服務(wù)器上的文件、數(shù)據(jù)庫(kù)或者內(nèi)存中。也可以將Session在Redis這種內(nèi)存型數(shù)據(jù)庫(kù)中,效使用Session用戶(hù)登錄狀態(tài)的過(guò)程如下用戶(hù)進(jìn)行登錄時(shí),用戶(hù)提交包含用戶(hù)名和的表單,放入HTTP請(qǐng)求報(bào)文中服務(wù)器驗(yàn)證該用戶(hù)名和,如果正確則把用戶(hù)信息到Redis中,它在Redis中的Key稱(chēng)為SessionID;服務(wù)器返回的響應(yīng)報(bào)文的Set- 首部字段包含了這個(gè)SessionID,客戶(hù)端收到響應(yīng)報(bào)文之后將該值存入瀏覽器 值,服務(wù)器收到之后提取出SessionID,從Redis中取應(yīng)該注意SessionID的安全性問(wèn)題,不能讓它被者輕易獲取,那么就不能產(chǎn)生一個(gè)容易被猜到的SessionID值。此外,還需要經(jīng)常重新生成SessionID。在對(duì)安全性要求極高的場(chǎng)景下,例如轉(zhuǎn)賬等操作,除了使用Session瀏覽器禁 來(lái)保存用戶(hù)信息,只能使用Session。除此之外,不能再將SessionID存放到 是使用URL重寫(xiě)技術(shù),將SessionID作為URL的參數(shù)進(jìn)行傳遞。Session選只能ASCII碼字符串,而Session則可以任何類(lèi)型的數(shù)據(jù),因此在考慮數(shù)據(jù)復(fù)雜性時(shí)首 對(duì)于大型,如果用戶(hù)所有的信息都在Session中,那么開(kāi)銷(xiāo)是非常大的,因此不建議將所有的用戶(hù)信息都到Session中。緩優(yōu)緩解服務(wù)器壓力降低客戶(hù)端獲取資源的延遲:緩存通常位于內(nèi)存中,緩存的速度更快。并且緩存服務(wù)器在地理位置上也有可能比源服務(wù)器來(lái)得近,例如瀏覽器緩存。實(shí)現(xiàn)方Cache-HTTP/1.1通過(guò)Cache-Control首部字段來(lái)控制緩存進(jìn)行緩no-store指令規(guī)定不能對(duì)請(qǐng)求或響應(yīng)的任何一部分進(jìn)行緩Cache-Control:Cache-Control:no-強(qiáng)制確認(rèn)緩no-cache指令規(guī)定緩存服務(wù)器需要先向源服務(wù)器驗(yàn)證緩存資源的有效性,只有當(dāng)緩存資源有效時(shí)才能使用該緩存對(duì)Cache-Control:Cache-Control:no-私有緩存和公共緩 指令規(guī)定了將資源作為私有緩存,只能被單獨(dú)用戶(hù)使用,一般在用戶(hù)瀏覽器中Cache-Control:Cache-Control: 指令規(guī)定了將資源作為公共緩存,可以被多個(gè)用戶(hù)使用,一般在服務(wù)器中Cache-Control:Cache-Control:緩存過(guò)期機(jī)max- 指令出現(xiàn)在請(qǐng)求報(bào)文,并且緩存資源的緩存時(shí)間小于該指令指定的時(shí)間,那么就能接受該緩max-age指令出現(xiàn)在響應(yīng)報(bào)文,表示緩存資源在緩存服務(wù)器中保存的時(shí)Cache-Control:Cache-Control:max-Expires首部字段也可以用于告知緩存服務(wù)器該資源什么時(shí)候會(huì)過(guò)Expires:Expires:Wed,04Jul201208:26:05HTTP/1.1中,會(huì)優(yōu)先處理max-age指令;在HTTP/1.0中,max-age指令會(huì)被忽略掉緩存驗(yàn)需要先了解ETag首部字段的含義,它是資源的唯一標(biāo)識(shí)。URL不能唯一表示資源,例 有中文和英文兩個(gè)資源,只有ETag才能對(duì)這兩個(gè)資源進(jìn)行唯一 ETag:ETag: 可以將緩存資源的ETag值放入If-None-Match首部,服務(wù)器收到該請(qǐng)求后,判斷緩存資源的ETag值和資源ETag值是否一致,如果一致則表示緩存資源有效,返回304NotModi?edIf-None-Match:If-None-Match: Last-Mod?ed首部字段也可以用于緩存驗(yàn)證,它包含在源服務(wù)器發(fā)送的響應(yīng)報(bào)文中,指示源服務(wù)器對(duì)資源的最后修改時(shí)間。但是它是一種弱校驗(yàn)器,因?yàn)橹荒芫_到一秒,所以它通常作為ag的備用方案。如果響應(yīng)首部字段里含有這個(gè)信息,客戶(hù)端可以在后續(xù)的請(qǐng)求中帶上If-Modi?ed-Since來(lái)驗(yàn)證緩存。服務(wù)器只在所請(qǐng)求的資源在給定的日期時(shí)間之后對(duì)內(nèi)容進(jìn)行過(guò)修改的情況下才會(huì)將資源返回,狀態(tài)碼為200OK。如果請(qǐng)求的資源從那時(shí)起修改,那么返回一個(gè)不帶有實(shí)體主體的304NtMi?d響應(yīng)報(bào)文。Last-Modified:Last-Modified:Wed,21Oct201507:28:00If-Modified-Since:Wed,21Oct201507:28:00內(nèi)容協(xié)通過(guò)內(nèi)容協(xié)商返回最合適的內(nèi)容,例如根據(jù)瀏覽器的默認(rèn)語(yǔ)言選擇返回中文界面還是英文界類(lèi)服務(wù)端驅(qū)動(dòng)客戶(hù)端設(shè)置特定的HTTP首部字段,例如Accept、Accept-Charset、Accept-Encoding、Accept-Language,服務(wù)器它存在以下問(wèn)題服務(wù)器很難知道客戶(hù)端瀏覽器的全部信客戶(hù)端提供的信息相當(dāng)冗長(zhǎng)(HTTP/2協(xié)議的首部壓縮機(jī)制緩解了這個(gè)問(wèn)題),并且存在隱私風(fēng)險(xiǎn)(HTTP給定的資源需要返回不同的展現(xiàn)形式,共享緩存的效率會(huì)降低,而服務(wù)器端的實(shí)現(xiàn)會(huì)越來(lái)越復(fù)驅(qū)動(dòng)服務(wù)器返回300MultipleChoices或者406NotAcceptable,客戶(hù)端從中選出最合適的那個(gè)資Vary:Vary:Accept-在使用內(nèi)容協(xié)商的情況下,只有當(dāng)緩存服務(wù)器中的緩存滿(mǎn)足內(nèi)容協(xié)商條件時(shí),才能使用該緩存,否則應(yīng)該向源服務(wù)器請(qǐng)求該資源。例如,一個(gè)客戶(hù)端發(fā)送了一個(gè)包含Accept-Language首部字段的請(qǐng)求之后,源服務(wù)器返回的響應(yīng)內(nèi)容,緩存服務(wù)器對(duì)這個(gè)響應(yīng)進(jìn)行緩存之后,在客戶(hù)端下一次同一個(gè)URL資源,并Accept-Language與緩存中的對(duì)應(yīng)的值相同時(shí)才會(huì)返回該緩內(nèi)容編 瀏覽器發(fā)送Accept-Encoding首部,其中包含有它所支持的壓縮算法,以及各自的優(yōu)先級(jí)。服務(wù)器則從中選種,使用該算法對(duì)響應(yīng)的消息主體進(jìn)行壓縮,并且發(fā)送Content-Encoding首部來(lái)告知瀏覽器它選擇了哪一種算法。由于該內(nèi)容協(xié)商過(guò)程是基于編碼類(lèi)型來(lái)選擇資源的展現(xiàn)形式的,響應(yīng)報(bào)文的Vary首部字段至少要包含Content-Encoding范圍請(qǐng)如果網(wǎng)絡(luò)出現(xiàn)中斷,服務(wù)器只發(fā)送了一部分?jǐn)?shù)據(jù),范圍請(qǐng)求可以使得客戶(hù)端只請(qǐng)求服務(wù)器未發(fā)送的那部分?jǐn)?shù)據(jù),從而避免服務(wù)器重新發(fā)送所有數(shù)據(jù)。在請(qǐng)求報(bào)文中添加Range首部字段指定請(qǐng)求的范圍Range:bytes=0-請(qǐng)求成功的話(huà)服務(wù)器返回的響應(yīng)包含206PartialContent狀態(tài)碼HTTP/1.1206PartialContentHTTP/1.1206PartialContentContent-Length:1024(binaryAccept-響應(yīng)首部字段Accept-Ranges用于告知客戶(hù)端是否能處理范圍請(qǐng)求,可以處理使用bytes,否則使用noneAccept-Ranges:Accept-Ranges:響應(yīng)狀態(tài)在請(qǐng)求成功的情況下,服務(wù)器會(huì)返回206PartialContent狀態(tài)碼在請(qǐng)求的范圍越界的情況下,服務(wù)器會(huì)返回416RequestedRangeNotSatis?able狀態(tài)碼。在不支持范圍請(qǐng)求的情況下,服務(wù)器會(huì)返回200OK狀態(tài)碼。分塊傳輸編ChunkedTransferEncoding,可以把數(shù)據(jù)分割成多塊,讓瀏覽器逐步顯示頁(yè)面一份報(bào)文主體內(nèi)可含有多種類(lèi)型的實(shí)體同時(shí)發(fā)送,每個(gè)部分之間用boundary字段定義的分隔符進(jìn)行分隔,每個(gè)部分例如,上傳多個(gè)表單時(shí)可以使用如下方Content-Type:Content-Type:multipart/form-data;Content-Disposition:form-data;name="submit-Content-Disposition:form-data;name="files";filename="file1.txt"Content-Type:text/ ...contentsoffile1.txt虛擬主HTTP/1.1使用虛擬主機(jī)技術(shù),使得一臺(tái)服務(wù)器擁有多個(gè),并且在邏輯上可以看成多個(gè)服務(wù)器通信數(shù)據(jù)轉(zhuǎn)服務(wù)器接受客戶(hù)端的請(qǐng)求,并且轉(zhuǎn)發(fā)給其它服務(wù)器使用的主要目的是緩負(fù)載均日志記而反向一般位于內(nèi)部網(wǎng)絡(luò)中,用戶(hù)察覺(jué)不到網(wǎng)與服務(wù)器不同的是,網(wǎng)關(guān)服務(wù)器會(huì)將HTTP轉(zhuǎn)化為其它協(xié)議進(jìn)行通信,從而請(qǐng)求其它非HTTP服務(wù)器的服務(wù)隧使用SSL等加密,在客戶(hù)端和服務(wù)器之間建立一條安全的通信線(xiàn)路六、HTTP有以下安全性問(wèn)題使用明文進(jìn)行通信,內(nèi)容可能會(huì)被無(wú)法證文的完整性,報(bào)文有可能遭篡改。HTTPS并不是新協(xié)議,而是讓HTTP先和SSL(SecureSocketsLayer)通信,再由SSL和TCP通信,也就是HTTPS使用了隧道進(jìn)行通通過(guò)使用SSL,HTTPS具有了加密(防)、認(rèn)證(防)和完整性保護(hù)(防篡改)加對(duì)稱(chēng)密鑰加對(duì)稱(chēng)密鑰加密(Symmtric-KyEncryption),密和使同一鑰。優(yōu)點(diǎn):運(yùn)算速度快;缺點(diǎn):無(wú)法安全地將密鑰傳輸給通信非對(duì)稱(chēng)密鑰非對(duì)稱(chēng)密鑰加密,又稱(chēng)公開(kāi)密鑰加密(Public- Encryption),加密和使用不同的密鑰公開(kāi)密鑰所有人都可以獲得,通信發(fā)送方獲得接收方的公開(kāi)密鑰之后,就可以使用公開(kāi)密鑰進(jìn)行加密,接收方收到通信內(nèi)容后使用私有密鑰。非對(duì)稱(chēng)密鑰除了用來(lái)加密,還可以用來(lái)進(jìn)行簽名。因?yàn)樗接忻荑€無(wú)法被其他人獲取,因此通信發(fā)送方使用其私有密鑰進(jìn)行簽名,通收方使用發(fā)送方的公開(kāi)密鑰對(duì)簽名進(jìn)行,就能判斷這個(gè)簽名是否正確。HTTPS采用HTTPS采用混合的加密機(jī)制,使用非對(duì)稱(chēng)密鑰加密用于傳輸對(duì)稱(chēng)密鑰來(lái)保證傳輸過(guò)程的安全性,之后使用對(duì)稱(chēng)密鑰加密進(jìn)行通信來(lái)保證通信過(guò)程的效率。(下圖中的SessionKey就是對(duì)稱(chēng)密鑰)認(rèn)通過(guò)使用來(lái)對(duì)通信方進(jìn)行認(rèn)證數(shù)字認(rèn)證機(jī)構(gòu) Authority)是客戶(hù)端與服務(wù)器雙方都可信賴(lài)的第機(jī)構(gòu)服務(wù)器的運(yùn)營(yíng)人員向CA提出公開(kāi)密鑰的申請(qǐng),CA在判明提出申請(qǐng)者的之后,會(huì)對(duì)已申請(qǐng)的公開(kāi)密鑰做數(shù)字簽進(jìn)行HTTPS通信時(shí),服務(wù)器會(huì)把發(fā)送給客戶(hù)端??蛻?hù)端取得其中的公開(kāi)密鑰之后,先使用數(shù)字簽名進(jìn)行驗(yàn)證,完整性保SSL提供報(bào)要功能來(lái)進(jìn)行完整性保護(hù)HTTP也提供了MD5報(bào)要功能,但不是安全的。例如報(bào)文內(nèi)容被篡改之后,同時(shí)重新計(jì)算MD5的值,通HTTPS的報(bào)要功能之所以安全,是因?yàn)樗Y(jié)合了加密和認(rèn)證這兩個(gè)操作。試想一下,加密之后的報(bào)文,遭到篡HTTPS的缺七、HTTP/1.xHTTP/1.x實(shí)現(xiàn)簡(jiǎn)單是以犧牲性能為代價(jià)客戶(hù)端需要使用多個(gè)連接才能實(shí)現(xiàn)并發(fā)和縮短延不會(huì)壓縮請(qǐng)求和響應(yīng)首部,從而導(dǎo)致不必要的網(wǎng)絡(luò)流不支持有效的資源優(yōu)先級(jí),致使底層TCP連接的利用率低下二進(jìn)制分幀HTTP/2.0將報(bào)文分成HEADERS幀和DATA幀,它們都是二進(jìn)制格式在通信過(guò)程中,只會(huì)有一個(gè)TCP連接存在,它承載了任意數(shù)量的雙向數(shù)據(jù)流(Stream)一個(gè)數(shù)據(jù)流(Steam)都有一個(gè)唯一標(biāo)識(shí)符和可選的優(yōu)先級(jí)信息,用于承載雙向信息。消息(Message)是與邏輯請(qǐng)求或響應(yīng)對(duì)應(yīng)的完整的一系列幀。幀F(xiàn)ame)是最小的通信單位,來(lái)自不同數(shù)據(jù)流的幀可以交錯(cuò)發(fā)送,然后再根據(jù)每個(gè)幀頭的數(shù)據(jù)流標(biāo)識(shí)符重新組裝。服務(wù)端推HTTP/2.0在客戶(hù)端請(qǐng)求一個(gè)資源時(shí),會(huì)把相關(guān)的資源一起發(fā)送給客戶(hù)端,客戶(hù)端就不需要再次發(fā)起請(qǐng)求了。例如客戶(hù)端請(qǐng)求page.html頁(yè)面,服務(wù)端就把script.js和style.css等與之相關(guān)的資源一起發(fā)給客戶(hù)端。首部壓HTTP/1.1的首部帶有大量信息,而且每次都要重復(fù)發(fā)HTTP/2.0要求客戶(hù)端和服務(wù)器同時(shí)和更新一個(gè)包含之前見(jiàn)過(guò)的首部字段表,從而避免了重復(fù)傳輸。不僅如此,HTTP/2.0也使用Hu?man編碼對(duì)首部字段進(jìn)行壓縮。八、HTTP/1.1詳細(xì)內(nèi)容請(qǐng)見(jiàn)上支持同時(shí)打開(kāi)多個(gè)TCP連接新增狀態(tài)碼支持分塊傳輸編新增緩存處理指令max-九、GET和POST作GET用于獲取資源,而POST用于傳輸實(shí)體主體參GET和POST的請(qǐng)求都能使用額外的參數(shù),但是GET的參數(shù)是以查詢(xún)字符串出現(xiàn)在URL中,而POST的參數(shù)在實(shí)體主體中。不能因?yàn)镻OST參數(shù)在實(shí)體主體中就認(rèn)為它的安全性更高,因?yàn)檎諛涌梢酝ㄟ^(guò)一些抓包工具(Fiddler)查看因?yàn)閁RL只支持ASCII碼,因此GET的參數(shù)中如果存在中文等字符就需要先進(jìn)行編碼。%E4%B8%AD%E6%96%87,而空格會(huì)轉(zhuǎn)換為%20。POST參數(shù)支持標(biāo)準(zhǔn)字符集

會(huì)轉(zhuǎn)換GETGET/test/demo_form.asp?name1=val

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論