版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、算法與數(shù)據(jù)結(jié)構(gòu)BTree 和 B+treeBTreeB樹(shù)是為了磁盤(pán)或者其他存儲(chǔ)設(shè)備而設(shè)計(jì)的一種多叉平衡查找樹(shù),相對(duì)于二叉 樹(shù),B樹(shù)的每個(gè)內(nèi)節(jié)點(diǎn)有多個(gè)分支,即多叉。B+TreeB+樹(shù)是B樹(shù)的變體,也是一種多路搜索樹(shù)。參考文章:排序算法快速排序快速排序是十分常用的高效率的算法,其思想是:先選一個(gè)標(biāo)尺,用它把整個(gè) 隊(duì)列過(guò)一遍篩選,以保證其左邊的元素都不大于它,其右邊的元素都不小與它function quicksort($arr)/獲取數(shù)組長(zhǎng)度$length = count($arr);/判斷長(zhǎng)度是否需要繼續(xù)二分比擬長(zhǎng)/短連接的操作過(guò)程.短連接的操作步驟:建立連接- 數(shù)據(jù)傳輸- 關(guān)閉連接.長(zhǎng)連接的操作
2、步驟:建立連接- 數(shù)據(jù)傳輸- (保持連接)- 數(shù)據(jù)傳輸- 關(guān)閉連接長(zhǎng)/短連接的優(yōu)缺點(diǎn).長(zhǎng)連接可以省去較多的TCP建立和關(guān)閉操作,減少資源浪費(fèi),節(jié)省時(shí)間,對(duì)于比擬頻繁的請(qǐng)求資源的客戶(hù)端比擬適用于長(zhǎng)連接.短連接對(duì)于服務(wù)器來(lái)說(shuō)管理較為簡(jiǎn)單,存在的連接都是有用的連 按,不需要額外的控制手段從瀏覽器輸入域名到展示頁(yè)面都發(fā)生了什么DNS域名解析先找本地hosts文件,檢查對(duì)應(yīng)域名ip的關(guān)系,有那么想ip地址發(fā)送請(qǐng)求,沒(méi)有再去找DNS服務(wù)器建立TCP連接拿到服務(wù)器IP后,向服務(wù)器發(fā)送求求,三次握手,建立TCP連接。簡(jiǎn)單理解三次握手:客戶(hù)端:您好,在家不,有你快遞服務(wù)端:在的,送來(lái)吧.客戶(hù)端:好滴,來(lái)了發(fā)送
3、請(qǐng)求與服務(wù)器建立連接后,就可以向服務(wù)器發(fā)起請(qǐng)求了。具體請(qǐng)求內(nèi)容可以在瀏覽 器中查看。服務(wù)器處理請(qǐng)求服務(wù)器收到請(qǐng)求后由web服務(wù)器(Apache , Nginx )處理請(qǐng)求,web服務(wù)器解 析用戶(hù)請(qǐng)求,知道了需要調(diào)用那些資源文件,再通過(guò)相應(yīng)的這些資源文件處理 用戶(hù)請(qǐng)求和參數(shù),并調(diào)用數(shù)據(jù)庫(kù)等,然后將結(jié)果通過(guò)web服務(wù)器返回給瀏覽Sh O返回響應(yīng)結(jié)果在響應(yīng)結(jié)果中都會(huì)有一個(gè) 狀態(tài)碼,諸如我們熟知的200、404、500 等。狀態(tài)碼都是由三位數(shù)字和原因短語(yǔ)組成,大致為五類(lèi):1XX信息性狀態(tài)碼接收的請(qǐng)求正在處理2XX成功狀態(tài)碼請(qǐng)求正常處理完畢3XX重定向狀態(tài)碼需要附加操作以完成請(qǐng)求4XX客戶(hù)端錯(cuò)誤狀態(tài)碼服
4、務(wù)器也無(wú)法處理的請(qǐng)求5XX服務(wù)器錯(cuò)誤狀態(tài)碼服務(wù)器請(qǐng)求處理出錯(cuò)關(guān)閉TCP連接為了防止服務(wù)器與客戶(hù)端雙方資源占用和消耗,當(dāng)雙方?jīng)]有請(qǐng)求或者響應(yīng)傳遞 時(shí),任意一方都可以發(fā)起關(guān)閉請(qǐng)求,與創(chuàng)立TCP連接的三次握手類(lèi)似,關(guān)閉 TCP連接需要4次揮手簡(jiǎn)單比喻為:客戶(hù)端:哥們,我這邊沒(méi)有數(shù)據(jù)要傳了,咱們關(guān)閉連接吧服務(wù)端:好的,我看看我這邊還有數(shù)據(jù)不服務(wù)端:兄弟,我這邊也沒(méi)數(shù)據(jù)要傳給你了,咱們可以關(guān)閉連接了客戶(hù)端:好嘲瀏覽器解析HTML瀏覽器布局渲染設(shè)計(jì)模式設(shè)計(jì)模式是一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過(guò)分類(lèi)編目的、代碼設(shè)計(jì)經(jīng)驗(yàn) 的總結(jié)。使用設(shè)計(jì)模式是為了可重用代碼、讓代碼更容易被他人理解、保證代 碼可靠性。單例模
5、式 當(dāng)需要保證對(duì)象只有一個(gè)實(shí)例的時(shí)候,單例模式是非常有用的。他把創(chuàng)立對(duì)象 的控制權(quán)交給一個(gè)單一的點(diǎn)上,任何時(shí)候應(yīng)用程序都只會(huì)存在且僅存在一個(gè)實(shí) 例。單例類(lèi)不應(yīng)該能在類(lèi)的外部進(jìn)行實(shí)例化。一個(gè)單例類(lèi)應(yīng)該具備以下幾個(gè)因素:必須擁有一個(gè)訪問(wèn)級(jí)別為private的構(gòu)造函數(shù),用于阻止類(lèi)被隨意實(shí)例化.必須擁有一個(gè)保存類(lèi)的實(shí)例的靜態(tài)變量.必須擁有一個(gè)訪問(wèn)這個(gè)實(shí)例的公共靜態(tài)方法,該方法通常被命名為 getlnstance()必須擁有一個(gè)私有的空的clone方法,防止實(shí)例被克隆復(fù)制簡(jiǎn)單實(shí)例:class Single(public static $_instance;private function _constr
6、uct()private function _clone()public static function getlnstance()if (!self:$_instance) self:$_instance = new self ();return self:$_instance;)public function sayHi()echo Hi n;)$single = Single:getlnstance();$single-sayHi();工廠模式工廠模式解決的是如何不通過(guò)new建立實(shí)例對(duì)象的方法工廠模式是一種類(lèi),它具有為你創(chuàng)立對(duì)象的某些方法,你可以使用工廠類(lèi)創(chuàng)立對(duì)象而不使用new。這 樣,
7、如果你想要更改所創(chuàng)立的對(duì)象類(lèi)型只需要更改工廠即可,使用該工廠的所有代碼會(huì)自動(dòng)更改。工廠模式往往配合接口一起使用,這樣應(yīng)用程序就不必要知道這些被實(shí)例化的類(lèi)的具體細(xì)節(jié),只要知道工廠返回的是支持某個(gè)接口的類(lèi)就可以方便的使用To簡(jiǎn)單舉例:/*抽象出一個(gè)人的接口Interface Person/interface Personpublic function showinfo();)/*一個(gè)繼承于抽象人接口的學(xué)生類(lèi)Class Student*/class Student implements Person (public function showinfo()(echo 這是一個(gè)學(xué)生n;)/*一個(gè)繼承于抽
8、象人接口的老師類(lèi)* Class Teacher*/class Teacher implements Person (public function showinfo()echo 這是一個(gè)老師n;)/*人類(lèi)工廠Class PersonFactory/class PersonFactory(public static function factory($person_type)(/將傳入的類(lèi)型首字母大寫(xiě)$class_name = ucfirst(Spersontype);if(class_exists($class_name)return new $class_name;else throw ne
9、w Exception(類(lèi):$class_name 不存在1);)/需要一個(gè)學(xué)生Sstudent = PersonFactory:factorystudent,);echo $student-showlnfo();/需要一個(gè)老師的時(shí)候Steacher = PersonFactory:factoryteacher,);echo $teacher-showlnfo();緩存相關(guān)Redis 和 Memcached 的區(qū)別Redis和Memcache都是將數(shù)據(jù)存放在內(nèi)存中,都是內(nèi)存數(shù)據(jù) 庫(kù)。但是Memcache還可以緩存其他東西,比方圖片、視頻Redis不只支持簡(jiǎn)單的k/v類(lèi)型的數(shù)據(jù),同時(shí)還提供lis
10、t、set、 hash等數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)虛擬內(nèi)存,當(dāng)物理內(nèi)存用完時(shí)Redis可以將一些很久沒(méi)有用到的 value交換到磁盤(pán)過(guò)期策略,memcache在set時(shí)就指定,例如setkeyl008即永不 過(guò)期,redis可以通過(guò)expire設(shè)定,例如 :expire name10分布式,設(shè)定memcache集群,利用magent做一主多從; redis也可以做一主多從。存儲(chǔ)平安,memcache掛掉后,數(shù)據(jù)沒(méi)了 ; redis可以定期保存在災(zāi)難恢復(fù),memcache掛掉后數(shù)據(jù)不可恢復(fù);redis數(shù)據(jù)喪失后可 以通過(guò)aof恢復(fù)redis支持?jǐn)?shù)據(jù)的備份,即master-slave模式的數(shù)據(jù)備份應(yīng)用場(chǎng)景不同
11、:redis除了可以做nosql數(shù)據(jù)庫(kù)之外,還能做消息 隊(duì)列、數(shù)據(jù)堆棧和數(shù)據(jù)緩存等。memcache適合于緩存sql語(yǔ) 句、數(shù)據(jù)集、用戶(hù)臨時(shí)性數(shù)據(jù)、延遲查詢(xún)數(shù)據(jù)和session等redis有哪些數(shù)據(jù)結(jié)構(gòu)String字符串類(lèi)型是redis最基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu),首先鍵是字符串類(lèi)型,而且其他幾種 結(jié)構(gòu)都是在字符串類(lèi)型基礎(chǔ)上構(gòu)建的。字符串類(lèi)型實(shí)際上可以是字符串、數(shù)字、二進(jìn)制(圖片、音頻),單最大不能 超過(guò)512M。使用場(chǎng)景:1緩存字符串最經(jīng)典的使用場(chǎng)景,redis作為緩存層,mysql作為存儲(chǔ)層,絕大局部 請(qǐng)求數(shù)據(jù)都是redis中獲取,由于redis具有支撐高并發(fā)特性,所以緩存通常 能起到加速讀寫(xiě)和降低后
12、端壓力的作用。.計(jì)數(shù)器許多應(yīng)用都會(huì)使用redis作為技術(shù)的基礎(chǔ)工具,它可以實(shí)現(xiàn)快速技術(shù)、查詢(xún)緩 存的功能。.共享 session處于負(fù)載均衡的考慮,分布式服務(wù)會(huì)將用戶(hù)信息的訪問(wèn)均衡到不同服務(wù)器,用 戶(hù)刷新一次訪問(wèn)可訥訥個(gè)會(huì)需要重新登錄,為了防止這個(gè)問(wèn)題可以使用redis 將用戶(hù)session集中管理,在這種模式下只要保證redis的高可用和擴(kuò)展性, 每次獲取用戶(hù)更新或查詢(xún)登錄信息都直接從redis中集中獲取。.限速 出于平安考慮,每次進(jìn)行登錄時(shí)讓用戶(hù)輸入手機(jī)驗(yàn)證碼,為了短信接口不被頻 繁訪問(wèn),會(huì)限制用戶(hù)每分鐘獲取驗(yàn)證碼的頻率。Hash在redis中哈希類(lèi)型是指鍵本身又是一種鍵值對(duì)結(jié)構(gòu),如 va
13、lue=fieldl, valuel) fieldn, valuen)使用場(chǎng)景:哈希結(jié)構(gòu)相對(duì)于字符串序列化緩存信息更加直觀,并且在更新操作上更加便 捷。list列表類(lèi)型是用來(lái)存儲(chǔ)多個(gè)有序的字符串,列表的每個(gè)字符串成為一個(gè)元素,一 個(gè)列表最多可以存儲(chǔ)2的32次方減1個(gè)元素。在redis中,可以對(duì)列表插入 (push)和彈出(pop ),還可以獲取指定范圍的元素列表。列表是一種比擬靈 活的數(shù)據(jù)結(jié)構(gòu),它可以充當(dāng)棧和隊(duì)列的角色。使用場(chǎng)景:L消息隊(duì)列if (Slength = 1) return $arr;/定義基準(zhǔn)元素$base = $arr0;/定義兩個(gè)空數(shù)組,用于存放和基準(zhǔn)元素的比擬后的結(jié)果$le
14、ft = 口;$right =;/遍歷數(shù)組for ($i=l; $i $base) $right = $arr$i;else $left = $arr$i;)/然后遞歸分別處理left和right$left = quicksort($left);$right 二 quicksort($right);/合并return array_merge$base, $right);redis的Ipush+brpop命令組合就可以實(shí)現(xiàn)阻塞隊(duì)列,生產(chǎn)者客戶(hù)端是用Ipush 從列表左側(cè)插入元素,多個(gè)消費(fèi)者客戶(hù)端使用brpop命令阻塞式的搶列表尾部 的元素,多個(gè)客戶(hù)端保證了消費(fèi)的負(fù)載均衡的高可用性。2.使用技巧列
15、表lpush+lpop=Stack (棧)lpush+rpop=Queue (隊(duì)列)lpush+1 trim=Capped Collection(有限集合)lpush+brpop=Message Queue (消息隊(duì)列)setsortedsetredis是單線程的么,為什么?因?yàn)镃PU并不是Redis的瓶頸,Redis的瓶頸最有可能是機(jī)器內(nèi)存或者網(wǎng)絡(luò)帶 寬。既然單線程容易實(shí)現(xiàn),而且CPU不會(huì)成為瓶頸,那么久順理成章的采用了 單線程的方案。當(dāng)然單個(gè)Redis進(jìn)程是沒(méi)方法使用多核的,但是它來(lái)就不是非常計(jì)算密集型的 服務(wù)。如果單核性能不夠用,可以多開(kāi)幾個(gè)進(jìn)程。redis的部署方式,主從、集群參考文章
16、:redis的哨兵模式參考文章:redis的持久化策略RDB (快照持久化)A0F (只追加文件持久化)參考文章:PHP基礎(chǔ).雙引號(hào)單引號(hào)區(qū)別雙引號(hào)解釋變量,單引號(hào)不解釋變量雙引號(hào)里插入單引號(hào),其中單引號(hào)里如果有變量的話,變量解釋雙引號(hào)的變量名后面必須要有一個(gè)非數(shù)字、字母、下劃線的特殊字 符,或者用講變量括起來(lái),否那么會(huì)將變量名后面的局部當(dāng)做一個(gè) 整體,引起語(yǔ)法錯(cuò)誤能使單引號(hào)字符盡量使用單引號(hào),單引號(hào)的效率比雙引號(hào)要高.GET和POST提交方式的區(qū)別 GET產(chǎn)生一個(gè)TCP數(shù)據(jù)包;POST產(chǎn)生兩個(gè)TCP數(shù)據(jù)包;對(duì)于GET方式的請(qǐng)求,瀏覽器會(huì)把 header和 data 一并發(fā)送出去,服務(wù)器響應(yīng)2
17、00 (返回?cái)?shù)據(jù))對(duì)于POST,瀏覽器先發(fā)送header,服務(wù)器響應(yīng)100 continue ,瀏覽器再發(fā)送data,服務(wù)器響應(yīng)200 ok (返回?cái)?shù)據(jù))。GET在瀏覽器回退時(shí)是無(wú)害的,而POST會(huì)再次提交請(qǐng)求GET請(qǐng)求會(huì)被瀏覽器主動(dòng)cache ,而POST不會(huì),除非手動(dòng)設(shè)置GET請(qǐng)求參數(shù)會(huì)被完整保存在瀏覽器歷史記錄里,而POST中的 參數(shù)不會(huì)被保存GET請(qǐng)求只能進(jìn)行url編碼,而POST支持多種編碼方式GET比POST更不平安,因?yàn)閰?shù)直接暴露在URL上,所以不能 用來(lái)傳遞敏感信息3.如何獲取客戶(hù)端的真實(shí)ip$_SERVER,REM0TE_ADDR或 getenvC REM0TE_ADDR)
18、可以使用 ip210ng ()轉(zhuǎn)成 數(shù)字。nclude 和 require 的區(qū)別require是無(wú)條件包含,也就是如果一個(gè)流程里加入require ,無(wú)論條件成立與 否都會(huì)先執(zhí)行require ,當(dāng)文件不存在或者無(wú)法翻開(kāi)的時(shí)候,會(huì)提示錯(cuò)誤,并且會(huì)終止程序執(zhí)行。include有返回值,而require沒(méi)有(可能因?yàn)槿绱藃equire的速度比include 快),如果被包含的文件不存在的化,那么會(huì)提示一個(gè)錯(cuò)誤,但是程序會(huì)繼續(xù)執(zhí) 行下去。注意:包含文件不存在或者語(yǔ)法錯(cuò)誤的時(shí)候require是致命的,而include不 是。.AJAX的優(yōu)勢(shì)是什么ajax是異步傳輸技術(shù),可以通過(guò)javascript實(shí)
19、現(xiàn),也可以通過(guò)JQuery框架實(shí) 現(xiàn),實(shí)現(xiàn)局部刷新,減輕了服務(wù)器的壓力,也提高了用戶(hù)體驗(yàn)。.在程序的開(kāi)發(fā)中,如何提高程序的運(yùn)行效率優(yōu)化SQL語(yǔ)句,查詢(xún)語(yǔ)句中盡量不使用select * ,用哪個(gè)字段查 哪個(gè)字段;少用子查詢(xún)可用表連接代替;少用模糊查詢(xún);數(shù)據(jù)表中創(chuàng)立索引;對(duì)程序中經(jīng)常用到的數(shù)據(jù)生成緩存;7.SESSI0N 與 COOKIE 的區(qū)別存儲(chǔ)位置:session存儲(chǔ)在服務(wù)器,cookie存儲(chǔ)在瀏覽器 平安性:session平安性高于cookie參考鏈接:8.isset和empty的區(qū)別isset()函數(shù)一般用來(lái)檢測(cè)變量是否設(shè)置假設(shè)變量不存在那么返回FALSE假設(shè)變量存在且其值為NULL,也
20、返回FALSE假設(shè)變量存在且值不為NULL,那么返回TUREe m pty ()函數(shù)是檢查變量是否為空假設(shè)變量不存在那么返回TRUE假設(shè)變量存在且其值為:0、0、NULL、FALSE, array。、var $var;以及沒(méi)有任何屬性的對(duì)象,那么返回TURE假設(shè)變量存在且值不為二0、0、NULL、FALSE, array。、var $var;以及沒(méi)有任何屬性的對(duì)象,那么返回FALSE.數(shù)據(jù)庫(kù)三范式第一范式:1NF是對(duì)屬性的原子性約束,要求屬性具有原子性, 不可再分解;第二范式:2NF是對(duì)記錄的惟一性約束,要求記錄有惟一標(biāo)識(shí), 即實(shí)體的惟一性;第三范式:3NF是對(duì)字段冗余性的約束,即任何字段不能
21、由其他字段派生出來(lái),它要求字段沒(méi)有冗余。.主鍵、外鍵和索引的區(qū)別定義主鍵-唯一標(biāo)識(shí)一條記錄,不能有重復(fù)的,不允許為空外鍵一表的外鍵是另一表的主鍵,外鍵可以有重復(fù)的,可以是空值索引-該字段沒(méi)有重復(fù)值,但可以有一個(gè)空值作用主鍵一用來(lái)保證數(shù)據(jù)完整性外鍵一用來(lái)和其他表建立聯(lián)系用的.索引一是提高查詢(xún)排序的速度個(gè)數(shù)主鍵一主鍵只能有一個(gè)外鍵一一個(gè)表可以有多個(gè)外鍵索引一一個(gè)表可以有多個(gè)唯一索引1L堆和棧的區(qū)別棧是編譯期間就分配好的內(nèi)存空間,因此你的代碼中必須就棧的大小有明確的 定義。堆是程序運(yùn)行期間動(dòng)態(tài)分配的內(nèi)存空間,你可以根據(jù)程序的運(yùn)行情況確定要分 配的堆內(nèi)存的大小。PHP包理器Composer與自動(dòng)加載規(guī)
22、范composer 學(xué)習(xí)地址:composer.json中的自動(dòng)加載映射目前PSR-0自動(dòng)加載、PSR-4自動(dòng)加載、classmap生成和files引入都是被支持的,PSR-4是首推的方法,因?yàn)樗峁┝烁蟮囊子眯?。PSR-4PSR-4規(guī)范了如何指定文件路徑從而自動(dòng)加載類(lèi),同時(shí)規(guī)范了自動(dòng)加載文件的 位置。乍一看這是和PSR-0重復(fù)了,實(shí)際上,在功能上確實(shí)有一局部重復(fù)。區(qū) 別在于,PSR-4的規(guī)范比擬干凈,去除了兼容PHP5.3以前版本的內(nèi)容。PSR-4和PSR-0最大的區(qū)別是對(duì)下劃線的定義不同,PSR-4中,在類(lèi)名中使用 下劃線是沒(méi)有特殊含義的,而在PSR-0的規(guī)那么中,下劃線或被轉(zhuǎn)化為目錄分
23、隔 符。在PSR-4的鍵下,你可以定義命名空間和路徑的映射關(guān)系,當(dāng)自動(dòng)加載類(lèi) 如FooBarBaz時(shí),命名空間Foo指向一個(gè)名為src/的目錄意味著自動(dòng)加載器 將查找名為src/Bar/Baz. php文件并引用它。命名空間的前綴必須以 結(jié)尾,以防止類(lèi)似前綴之間的沖突。在安裝和更新期 間,PSR-4引用全部組合到一個(gè)key=value數(shù)組中,該數(shù)組可以在生成的文 件 vendor/composer/autoload_psr4. php 中找到。例子:“autoload”: psr-4: App:App/ /命名空間App映射到目錄Appclassmapclassmap引用的所有組合,都會(huì)在安裝
24、、更新的過(guò)程中生成并存儲(chǔ)至vendor/composer/autoload_classmap. php 文件中。你可以使用classmap生成支持自定義加載的不遵循PSR-4規(guī)范的類(lèi)庫(kù),要配置它指向的目錄,以便能夠準(zhǔn)確的搜索到類(lèi)文件例子:(“autoload”: “classmap”: src/,“Something. phpFiles 如果你想要明確指定,在每次請(qǐng)求時(shí)都要載入某些文件,那么你可以使 用files字段加載。通常作為函數(shù)庫(kù)的載入方式。例子:(“autoload”: “files”: /zsrc/MyLibrary/functionsz,PHP框架Laravel 相關(guān)前端相關(guān)Jav
25、aScriptVueJS VueJs雙向數(shù)據(jù)綁定原理。LinuxCors跨域CORS的基本原理是通過(guò)設(shè)置 請(qǐng)求和返回中header,告知瀏覽器該請(qǐng)求 是合法的。這涉及到服務(wù)器端和瀏覽器端雙方的設(shè)置:請(qǐng)求的發(fā)起( Request Header)和服務(wù)器對(duì)請(qǐng)求正確的響應(yīng)( response header)。冒泡排序思路:法如其名,就像冒泡一樣,每次從數(shù)組中冒出一個(gè)最大的數(shù)。比方:2,4 , 1第一次冒出4:2, 1,4第二次冒出2 : 1 , 2,4function bubbleSort($arr)/獲取數(shù)組長(zhǎng)度$length = count($arr);/第一層循環(huán)控制冒泡輪次for ($i=0
26、; $i $length-l; $i+) /內(nèi)層循環(huán)控制從第0個(gè)鍵值和后一個(gè)鍵值比擬,每次冒出一個(gè)最大的數(shù)for ($k=0; $k $arr$k+l) $tmp = $arr$k+l;$arr$k+l = $arr$k;$arr$k = $tmp;return $arr;選擇排序思路:每次選擇一個(gè)相應(yīng)的元素,然后將其放到指定的位置function selectSort ($arr) /實(shí)現(xiàn)思路/雙重循環(huán)完成,外層控制輪數(shù),當(dāng)前的最小值,內(nèi)層控制比擬次數(shù)/獲取長(zhǎng)度$length = count($arr);for ($i=0; $i $length - 1; $i+) /假設(shè)最小值的位置$P
27、= $i;/使用假設(shè)的最小值和其他值比擬,找到當(dāng)前的最小值for ($j=$i+l; $j $arr$j) $P = $j; /比假設(shè)的值更小/通過(guò)內(nèi)部for循環(huán)找到了當(dāng)前最小值的key,并保存在$p中/判斷日光當(dāng)前$p中的鍵和假設(shè)的最小值的鍵不一致增將其互換if ($p != $i) $tmp = $arr$p;$arr$p = $arr$i;$arr$i= $tmp;)/返回最終結(jié)果return $arr;計(jì)算機(jī)網(wǎng)絡(luò)TCP/UDP 區(qū)別TCPTCP是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議TCP面向連接,提供可靠地?cái)?shù)據(jù)服務(wù)TCP首部開(kāi)銷(xiāo)20字節(jié)TCP邏輯通信信道是全雙工的可靠信道
28、TCP連接只能是點(diǎn)到點(diǎn)的UDPUDP是參考模型中一種無(wú)連接的傳輸層協(xié)議,提供面向事務(wù)的簡(jiǎn)單不可靠的信息傳遞服務(wù)UDP無(wú)連接,不可靠UDP首部開(kāi)銷(xiāo)8字節(jié)UDP邏輯通信信道是不可靠信道UDP沒(méi)有擁塞機(jī)制,因此網(wǎng)絡(luò)出現(xiàn)擁堵不會(huì)使源主機(jī)的發(fā)送效率降低UDP支持一對(duì)一,多對(duì)一,多對(duì)多的交互通信三次握手,I次揮手,為什么是三次握手四次揮手在TCP/IP協(xié)議中,TCP協(xié)議提供可靠的連接服務(wù),采用三次握手建立一個(gè)連接, 完成三次握手,客戶(hù)端與服務(wù)器開(kāi)始傳送數(shù)據(jù)。簡(jiǎn)單點(diǎn)說(shuō):A與B建立TCP連接時(shí),首先A向B發(fā)送SYN (同步請(qǐng)求),然 后B回復(fù)SYN+ACK (同步請(qǐng)求應(yīng)答),最后A回復(fù)ACK確認(rèn),這樣TCP的 一次連接(三次握手)就完成了。TCP三次握手所謂三次握手,是指簡(jiǎn)歷一個(gè)TCP連接時(shí)需要客戶(hù)端和服務(wù)器總共發(fā)送三個(gè)包三次握手的目的是連接服務(wù)器指定端口,簡(jiǎn)歷TCP連接,并同步連接雙方的序列號(hào)并交換TCP窗口大小信息。TCP三次握手圖解:TCP三次握手 :他如蝮如加j而fegq&n.第一次握手 客戶(hù)端發(fā)送一個(gè)TCP的SYN標(biāo)志位置1的包,指明客戶(hù)打算連接的服務(wù)器的 端口,以及初始化序號(hào),保存在包頭的序列號(hào)字段里。.第二次握手服務(wù)器發(fā)揮確認(rèn)包應(yīng)答,即SYN標(biāo)志位和ACK標(biāo)志均為1 ,同時(shí)將確認(rèn)序號(hào) 設(shè)置為客戶(hù)的ISN加1 ,即X+1。.第三次握手客戶(hù)端再次發(fā)送確認(rèn)包,SYN標(biāo)識(shí)為0 ,
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版電商企業(yè)9%股權(quán)轉(zhuǎn)讓及增值服務(wù)合同3篇
- 2025年度防盜門(mén)產(chǎn)品性能測(cè)試合同3篇
- 二零二五年度直升機(jī)購(gòu)銷(xiāo)及緊急救援服務(wù)合同3篇
- 2024新教材高中地理第四章地貌第2節(jié)地貌的觀察課時(shí)作業(yè)含解析新人教版必修第一冊(cè)
- 二零二四年商鋪?zhàn)赓U示范合同樣本6篇
- 2025年1月國(guó)家開(kāi)放大學(xué)本科《公共政策概論》期末紙質(zhì)考試試題及答案
- 2024年高考英語(yǔ)大一輪復(fù)習(xí)課時(shí)作業(yè)8Module2NoDrugs含解析外研版
- 2024版建筑工程外包合同
- 2024網(wǎng)絡(luò)安全服務(wù)與租賃合同
- 二零二五版電梯設(shè)備安裝與物聯(lián)網(wǎng)技術(shù)應(yīng)用合同2篇
- GB/T 16895.3-2024低壓電氣裝置第5-54部分:電氣設(shè)備的選擇和安裝接地配置和保護(hù)導(dǎo)體
- 2025湖北襄陽(yáng)市12345政府熱線話務(wù)員招聘5人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 計(jì)劃合同部部長(zhǎng)述職報(bào)告范文
- 2025年河北省職業(yè)院校技能大賽智能節(jié)水系統(tǒng)設(shè)計(jì)與安裝(高職組)考試題庫(kù)(含答案)
- 人教版高一地理必修一期末試卷
- 2024年下半年鄂州市城市發(fā)展投資控股集團(tuán)限公司社會(huì)招聘【27人】易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- GB/T 29498-2024木門(mén)窗通用技術(shù)要求
- 《職業(yè)院校與本科高校對(duì)口貫通分段培養(yǎng)協(xié)議書(shū)》
- GJB9001C質(zhì)量管理體系要求-培訓(xùn)專(zhuān)題培訓(xùn)課件
- 人教版(2024)英語(yǔ)七年級(jí)上冊(cè)單詞表
- 二手車(chē)車(chē)主寄售協(xié)議書(shū)范文范本
評(píng)論
0/150
提交評(píng)論