了解Web及網(wǎng)絡(luò)基礎(chǔ)
網(wǎng)絡(luò)基礎(chǔ)TCP/IP
????所謂TCP/IP 簡(jiǎn)單來(lái)說就是互聯(lián)網(wǎng)相關(guān)的各種協(xié)議族的總稱。
????因?yàn)樵谟?jì)算機(jī)與網(wǎng)絡(luò)設(shè)備進(jìn)行通信的時(shí)候是需要定義好一定的規(guī)則的,所以便出現(xiàn)了很多的協(xié)議,比如大家所熟知的HTTP協(xié)議就是屬于TCP/IP的寓涨。
TCP/IP的分層管理
????TCP/IP協(xié)議族中比較重要的一點(diǎn)就是分層,分層讓設(shè)計(jì)與修改變得簡(jiǎn)單起來(lái),假如說不分層的話如果某個(gè)地方需要進(jìn)行修改時(shí)咆耿,則需要進(jìn)行整體替換,而進(jìn)行分層的話只需要將需要變動(dòng)的層替換掉即可爹橱。
自上而下分為四層 :
應(yīng)用層
? ? 應(yīng)用層決定了向用戶提供應(yīng)用服務(wù)時(shí)通信的活動(dòng)萨螺,比如文件傳輸協(xié)議FTP,域名系統(tǒng)DNS以及HTTP均屬于此層。
傳輸層
? ? 傳輸層對(duì)于上層應(yīng)用層慰技,提供處于網(wǎng)絡(luò)連接中的兩臺(tái)計(jì)算機(jī)之間的數(shù)據(jù)傳輸椭盏。比如傳輸控制協(xié)議TCP和用戶數(shù)據(jù)報(bào)協(xié)議UDP屬于此層。
網(wǎng)絡(luò)層
? ? 網(wǎng)絡(luò)層用于處理網(wǎng)絡(luò)上流通的數(shù)據(jù)包吻商,數(shù)據(jù)包是網(wǎng)絡(luò)傳輸?shù)淖钚?shù)據(jù)單位掏颊,網(wǎng)絡(luò)層規(guī)定了通過怎樣的路徑(可理解為傳輸路徑)到達(dá)對(duì)方計(jì)算機(jī),并把數(shù)據(jù)包傳送給對(duì)方艾帐,通俗來(lái)說就是在眾多線路中選擇一條傳輸路線乌叶。
鏈路層
? ? 也稱數(shù)據(jù)鏈路層,用來(lái)處理連接網(wǎng)絡(luò)的硬件部分柒爸,硬件上的范疇均在鏈路層的作用范圍內(nèi)准浴。
TCP/IP通信傳輸流
????利用TCP/IP協(xié)議族進(jìn)行網(wǎng)絡(luò)通信時(shí),會(huì)通過分層順序與對(duì)方進(jìn)行通信捎稚。
????發(fā)送端從應(yīng)用層往下走乐横,接收端則往應(yīng)用層往上走。我們用HTTP舉例來(lái)說明今野,首先作為發(fā)送端的客戶端在應(yīng)用層(HTTP協(xié)議)發(fā)出一個(gè)想看某個(gè)Web頁(yè)面的HTTP請(qǐng)求葡公。接著,為了傳輸方便腥泥,在傳輸層(TCP協(xié)議)把從應(yīng)用層處收到的數(shù)據(jù)(HTTP請(qǐng)求報(bào)文)進(jìn)行分割匾南,并在各個(gè)報(bào)文上打上標(biāo)記序號(hào)及端口號(hào)后轉(zhuǎn)發(fā)給網(wǎng)絡(luò)層。在網(wǎng)絡(luò)層(IP協(xié)議)蛔外,增加作為通信目的地的MAC地址后轉(zhuǎn)發(fā)給鏈路層蛆楞。這樣一來(lái),發(fā)往網(wǎng)絡(luò)的通信請(qǐng)求就準(zhǔn)備齊全了夹厌。接收端的服務(wù)器在鏈路層接收到數(shù)據(jù)豹爹,按序往上層發(fā)送,一直到應(yīng)用層矛纹。當(dāng)傳輸?shù)綉?yīng)用層臂聋,才能算真正接收到由客戶端發(fā)送過來(lái)的HTTP請(qǐng)求。
????發(fā)送端在層與層之間傳輸數(shù)據(jù)時(shí)或南,每經(jīng)過一層時(shí)必定會(huì)被打上一個(gè)該層所屬的首部信息孩等。反之,接收端在層與層傳輸數(shù)據(jù)時(shí)采够,每經(jīng)過一層時(shí)會(huì)把對(duì)應(yīng)的首部消去肄方。這種把數(shù)據(jù)信息包裝起來(lái)的做法稱為封裝(encapsulate)。
IP蹬癌、TCP权她、DNS
IP
????IP協(xié)議的作用是把各種數(shù)據(jù)包傳送給對(duì)方虹茶。而要保證確實(shí)傳送到對(duì)方那里,則需要滿足各類條件隅要。其中兩個(gè)重要的條件是IP地址和MAC地址(Media Access Control Address)蝴罪。IP地址指明了節(jié)點(diǎn)被分配到的地址,MAC地址是指網(wǎng)卡所屬的固定地址步清。IP地址可以和MAC地址進(jìn)行配對(duì)要门。IP地址可變換,但MAC地址基本上不會(huì)更改尼啡。
? ??使用ARP協(xié)議憑借MAC地址進(jìn)行通信IP間的通信依賴MAC地址暂衡。在網(wǎng)絡(luò)上,通信的雙方在同一局域網(wǎng)(LAN)內(nèi)的情況是很少的崖瞭,通常是經(jīng)過多臺(tái)計(jì)算機(jī)和網(wǎng)絡(luò)設(shè)備中轉(zhuǎn)才能連接到對(duì)方。而在進(jìn)行中轉(zhuǎn)時(shí)撑毛,會(huì)利用下一站中轉(zhuǎn)設(shè)備的MAC地址來(lái)搜索下一個(gè)中轉(zhuǎn)目標(biāo)书聚。這時(shí),會(huì)采用ARP協(xié)議(Address ResolutionProtocol)藻雌。ARP是一種用以解析地址的協(xié)議雌续,根據(jù)通信方的IP地址就可以反查出對(duì)應(yīng)的MAC地址。
TCP
????TCP位于傳輸層胯杭,提供可靠的字節(jié)流服務(wù)驯杜。
? ? 字節(jié)流服務(wù)是指為了方便傳輸將大塊數(shù)據(jù)分割成以報(bào)文段為單位的數(shù)據(jù)包進(jìn)行管理。
? ? 可靠的傳輸服務(wù)是指做个,能夠?qū)?shù)據(jù)準(zhǔn)確可靠的傳給對(duì)方鸽心。
? ? 一句話可概括為TCP協(xié)議為了更容易傳送大數(shù)據(jù)才把數(shù)據(jù)分割,而且TCP協(xié)議能夠準(zhǔn)確確認(rèn)數(shù)據(jù)最終是否送達(dá)到對(duì)方居暖。
? ? 三次握手
? ??為了準(zhǔn)確無(wú)誤地將數(shù)據(jù)送達(dá)目標(biāo)處顽频,TCP協(xié)議采用了三次握手(three-way handshaking)策略。
????用TCP協(xié)議把數(shù)據(jù)包送出去后太闺,TCP不會(huì)對(duì)傳送后的情況置之不理糯景,它一定會(huì)向?qū)Ψ酱_認(rèn)是否成功送達(dá)。握手過程中使用了TCP的標(biāo)志(flag)——SYN(synchronize)和ACK(acknowledgement)省骂。發(fā)送端首先發(fā)送一個(gè)帶SYN標(biāo)志的數(shù)據(jù)包給對(duì)方蟀淮。接收端收到后,回傳一個(gè)帶有SYN/ACK標(biāo)志的數(shù)據(jù)包以示傳達(dá)確認(rèn)信息钞澳。最后怠惶,發(fā)送端再回傳一個(gè)帶ACK標(biāo)志的數(shù)據(jù)包,代表“握手”結(jié)束略贮。若在握手過程中某個(gè)階段莫名中斷甚疟,TCP協(xié)議會(huì)再次以相同的順序發(fā)送相同的數(shù)據(jù)包仗岖。
DNS
? ??DNS(Domain Name System)服務(wù)是和HTTP協(xié)議一樣位于應(yīng)用層的協(xié)議。它提供域名到IP地址之間的解析服務(wù)览妖。
? ? 簡(jiǎn)單來(lái)講DNS作用在于將域名轉(zhuǎn)換為IP地址轧拄。
????DNS協(xié)議提供通過域名查找IP地址,或逆向從IP地址反查域名的服務(wù)讽膏。
完整的請(qǐng)求路徑以及功能圖
URI和URL
? ? 簡(jiǎn)單來(lái)講URI是用來(lái)標(biāo)識(shí)某個(gè)互聯(lián)網(wǎng)資源而URL表示的是資源的確切位置檩电。
????URL為URI的子集。
? ? URI格式