如何做網(wǎng)站描述電商入門基礎(chǔ)知識
計算機(jī)網(wǎng)絡(luò)–計算機(jī)網(wǎng)絡(luò)概念
計算機(jī)網(wǎng)絡(luò)–物理層
計算機(jī)網(wǎng)絡(luò)–數(shù)據(jù)鏈路層
計算機(jī)網(wǎng)絡(luò)–網(wǎng)絡(luò)層
計算機(jī)網(wǎng)絡(luò)–傳輸層
計算機(jī)網(wǎng)絡(luò)–應(yīng)用層
1. 概述
因為不同的網(wǎng)絡(luò)應(yīng)用之間需要有一個確定的通信規(guī)則。
1.1 兩種常用的網(wǎng)絡(luò)應(yīng)用模型
1.1.1 客戶/服務(wù)器模型(Client/Server)
1.1.2 P2P模型(Peer-to-Peer)
網(wǎng)絡(luò)健壯性指的是P2P模型不容易壞掉,即使一個節(jié)點壞了也沒問題,可以有其他節(jié)點代替。
2. 域名系統(tǒng)協(xié)議(DNS)
2.1 概述
DNS就是將打在地址欄的域名轉(zhuǎn)化為IP地址的東西。
2.1.1 域名
域名就是www.xxx.com,當(dāng)然這是最簡單的一種 .com之后還可以有東西,稱之為根,域名從左向右,級別逐漸增高。
2.2 域名服務(wù)器(DNS服務(wù)器)
DNS服務(wù)器有很多臺,根據(jù)層次結(jié)構(gòu)分為三層,根域名服務(wù)器,頂級域名服務(wù)器,權(quán)限域名服務(wù)器。
本地域名服務(wù)器不算層次結(jié)構(gòu),特點是里主機(jī)比較近,當(dāng)主機(jī)和另一臺比較近的主機(jī)通信時,就不用走哪些更高級的服務(wù)器了。
根域名服務(wù)器并不是一個域名只有一臺,而是一個域名對應(yīng)多臺域名服務(wù)器,全世界一共有13個這樣的域名,分別是a.rootservers.net,b.rootservers.net,c.rootservers.net,~m.rootservers.net
在權(quán)限域名服務(wù)器中,雖然看似abc.com比y.abc.com少了一位,但是他們的地位仍是對等的,對應(yīng)的兩臺權(quán)限域名服務(wù)器。
2.3 域名解析過程
2.3.1 遞歸查詢
在上圖中
主機(jī)先是想本地域名服務(wù)器發(fā)送請求,如果查不到的話,
本地域名服務(wù)器向根域名服務(wù)器發(fā)送請求(找別人),如果還是查不到的話,
根域名域名服務(wù)器向頂級域名服務(wù)器發(fā)送請求(找別人),如果還是查不到的話,
頂級域名服務(wù)器向權(quán)限域名服務(wù)器發(fā)送請求(找別人)
可以看到每一次向下一個查詢的服務(wù)器都變了,不是主機(jī)一個個去問,而是服務(wù)器自己一個個問下去
2.3.2 迭代查詢
在上圖中
主機(jī)先是想本地域名服務(wù)器發(fā)送請求,如果查不到的話,
本地域名服務(wù)器就讓主機(jī)去向根域名服務(wù)器發(fā)送請求(主機(jī)去找,本地域名給目標(biāo)根域名服務(wù)器的IP地址),如果還是查不到的話,
根域名域名服務(wù)器讓主機(jī)去向?qū)?yīng)的頂級域名服務(wù)器發(fā)送請求(主機(jī)去找,根域名給目標(biāo)頂級域名服務(wù)器的IP地址),如果還是查不到的話,
頂級域名服務(wù)器讓主機(jī)去向權(quán)限域名服務(wù)器發(fā)送請求(主機(jī)去找,頂級域名給目標(biāo)權(quán)限域名服務(wù)器的IP地址)
可以看到這里是主機(jī)一個個挨個問的地址
2.3.3 高速緩存
為了減少多次查詢同一個域名的資源浪費,本地域名服務(wù)器會存儲最近使用的ip地址解析,下次再訪問同一個域名就不需要這么多查詢步驟了。同時這個高速緩存主機(jī)本身也有存儲
同時本地域名服務(wù)器還可以對頂級域名服務(wù)器,權(quán)限域名服務(wù)器的地址進(jìn)行緩存,下一次即使是不知道的ip地址,查詢也可以更快
高速緩存為了保持正確性,需要定時更新
3. 文件傳輸協(xié)議(FTP,TFTP)
3.1 概述
TFTP是一個輕量的,比較容易實現(xiàn)的,面對小文件的,UDP的文件傳輸協(xié)議
這里我們重點是FTP協(xié)議
3.2 FTP的服務(wù)端和客戶端
3.3 FTP的工作原理
為什么有匿名登陸:對于一些公共服務(wù)器來說,增加驗證階段就是增加資源開銷,減少驗證階段就可以節(jié)省資源來更好地服務(wù)
主進(jìn)程和從屬進(jìn)程的區(qū)別:主進(jìn)程是打開端口,讓外部發(fā)送的數(shù)據(jù)可以進(jìn)來,并且將這些數(shù)據(jù)逐個分配各從屬進(jìn)程。從屬進(jìn)程則是單獨為這些數(shù)據(jù)服務(wù)
先注釋一下這里的主進(jìn)程被忽略掉了,只是沒標(biāo)在上面,不是沒有啊
這里客戶端和服務(wù)器端先建立TCP連接,端口是21,稱為控制連接
然后看情況是主動建立連接還是被動建立連接
主動建立連接是指服務(wù)器端主動發(fā)送請求和客戶端進(jìn)行連接,此時端口號固定是20
被動連接是指客戶端發(fā)送請求和服務(wù)器端建立數(shù)據(jù)傳送連接,此時端口號是不確定,有兩者協(xié)商得到
數(shù)據(jù)傳輸完成之后,數(shù)據(jù)連接斷開,控制連接繼續(xù)保持,直至兩邊發(fā)送斷開請求
FTP的兩種傳輸模式了解即可
4. 電子郵件
4.1 概述
4.1.1 電子郵件的格式
4.1.2 電子郵件系統(tǒng)的組成結(jié)構(gòu)
郵件服務(wù)器的功能注釋
郵件服務(wù)器端的發(fā)送和接受是指從自己的用戶代理處接收郵件,之后向?qū)γ娴泥]件服務(wù)器發(fā)送郵件
郵件服務(wù)器的報告郵件發(fā)送結(jié)果就是投遞是否成功這種情況
郵件服務(wù)器既可以作為客戶端又可以作為服務(wù)器端,使用的是C/S方式
協(xié)議的功能注釋
發(fā)郵件用的是SMTP
收郵件的是POP3或者IMAP
4.2 幾個郵件協(xié)議
4.2.1 簡單郵件傳送協(xié)議SMTP
注意一下,這里STMP客戶和服務(wù)器不是固定死的,可以也可以成為服務(wù)器,服務(wù)器也可以成為用戶,由發(fā)送方和接收方?jīng)Q定,發(fā)送方就是客戶,接收方就是服務(wù)器
注釋
可以看見這里比如
220 service ready
250 OK
421 service not available
550 xxx
354 xxx
123451
2
3
4
5
6
都是應(yīng)答信息
這里RCPT能有多條命令的原因是,電子郵件可以有多個收件人,就是群發(fā),所以允許多個RCPT
再強(qiáng)調(diào)一下,這里服務(wù)器和客戶端可以互換,視具體情況而定,發(fā)送方是客戶端,接收方是服務(wù)器端
4.2.2 改進(jìn)SMTP缺點的MIME協(xié)議
MIME改善SMTP發(fā)送數(shù)據(jù)的缺點,是SMTP的功能性擴(kuò)展
MIME協(xié)議已經(jīng)逐漸開始應(yīng)用到瀏覽器當(dāng)中,通過對不同文件類型用不同的標(biāo)識符標(biāo)識,來讓瀏覽器讀取通過MIME的相關(guān)文件
4.2.3 郵局協(xié)議POP3
這里接收方是客戶端,郵件服務(wù)器是服務(wù)器端
POP3確實很簡單,但是有不少缺點,比較難受的就是郵件一旦下載就自動刪除了
4.2.4 比較復(fù)雜的讀取郵件的協(xié)議——IMAP協(xié)議
4.3 基于萬維網(wǎng)的電子郵件
與之前的不同的地方就是,基于萬維網(wǎng)的電子郵件的郵件服務(wù)器端可以不同
同時,發(fā)送郵件使用的SMTP/MIME和收郵件時的POP3/IMAP協(xié)議都換成了HTTP協(xié)議
5. 萬維網(wǎng)和HTTP協(xié)議
5.1 萬維網(wǎng)概述
URL用來標(biāo)識整個互聯(lián)網(wǎng)當(dāng)中的某一個資源(文字,視屏,音頻等)的位置
HTTP用來將這些資源傳送給用戶
HTML幫助設(shè)計者來設(shè)計頁面,讓不同設(shè)計者設(shè)計的頁面都可以在界面上顯示
5.2 HTTP協(xié)議
5.2.1 HTTP協(xié)議的過程
這張圖里講了HTTP的具體過程
服務(wù)器通過TCP 80端口來監(jiān)聽HTTP請求
注意HTTP可以不一次性下載完頁面的所有資源,可以只下載文本部分,其他音頻視頻等待用戶下一步請求之后再傳輸
5.2.2 HTTP協(xié)議的特點
5.2.3 HTTP的連接方式——持久連接和非持久連接
非持久連接在TCP三次握手的第三次握手時發(fā)生,將HTTP請求作為第三次握手的數(shù)據(jù)部分發(fā)給服務(wù)器,服務(wù)器收到請求之后將HTTP相應(yīng)報文傳輸給客戶。耗時就是RTT*2+文檔傳輸時間。
缺點就是這樣如果再想傳輸,那么就需要重新建立TCP連接從頭開始
持久連接和非持久連接類似,都是在第三次握手時發(fā)生,將HTTP請求作為第三次握手的數(shù)據(jù)部分發(fā)給服務(wù)器,服務(wù)器收到請求之后將HTTP相應(yīng)報文傳輸給客戶。但是持久連接再需要請資源的時候就不需要建立新的TCP連接了
持久連接的兩種方式——非流水線和流水線
非流水線就是發(fā)一個,確認(rèn)一個,才能再發(fā)下一個
流水線就是一個個連著發(fā),然后多個確認(rèn)
和之前說過的停止等待協(xié)議,后退N幀協(xié)議和選擇重傳協(xié)議很像,忘了的話可以去復(fù)習(xí)一下
開個傳送門計算機(jī)網(wǎng)絡(luò)筆記Part3 數(shù)據(jù)鏈路層(Data Link Layer)
5.2.4 HTTP的報文結(jié)構(gòu)
開始行用于區(qū)別請求報文和響應(yīng)報文??梢悦黠@的看到兩者第一行的東西都不一樣
請求報文的方法是指命令,就是對所請求的對象進(jìn)行什么操作,如獲取/刪除等等
URL就是之間說的資源標(biāo)識符
版本是指使用的是什么版本的HTTP協(xié)議
CRLF相當(dāng)于我們程序里面的;,標(biāo)識一行的結(jié)束。同時,在整個首部行結(jié)束時,為了區(qū)別首部行和實體主體還會有一行單獨的CRLF
這里舉了請求報文的例子,和一些常用的狀態(tài)碼