1. OSI 七層模型
OSI(Open System Interconnection卜壕,開放系統(tǒng)互連)七層網(wǎng)絡(luò)模型稱為開放式系統(tǒng)互聯(lián)參考模型 反砌,是一個邏輯上的定義古瓤,一個規(guī)范,它把網(wǎng)絡(luò)從邏輯上分為了7層揭鳞。每一層都有相關(guān)、相對應(yīng)的物理設(shè)備梆奈,比如路由器汹桦,交換機(jī)。OSI 七層模型是一種框架性的設(shè)計方法 鉴裹,建立七層模型的主要目的是為解決異種網(wǎng)絡(luò)互連時所遇到的兼容性問題舞骆,其最主要的功能使就是幫助不同類型的主機(jī)實現(xiàn)數(shù)據(jù)傳輸钥弯。OSI采用了分層的結(jié)構(gòu)化技術(shù),共分七層督禽,物理層脆霎、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層狈惫、傳輸層睛蛛、會話層、表示層胧谈、應(yīng)用層忆肾。
- 1、 物理層:提供為建立菱肖、維護(hù)和拆除物理鏈路所需要的機(jī)械的客冈、電氣的、功能的和規(guī)程的特性稳强;有關(guān)的物理鏈路上傳輸非結(jié)構(gòu)的位流以及故障檢測指示场仲。
- 2、數(shù)據(jù)鏈路層:在網(wǎng)絡(luò)層實體間提供數(shù)據(jù)發(fā)送和接收的功能和過程退疫;提供數(shù)據(jù)鏈路的流控渠缕。
- 3、網(wǎng)絡(luò)層:控制分組傳送系統(tǒng)的操作褒繁、路由選擇亦鳞、擁護(hù)控制、網(wǎng)絡(luò)互連等功能棒坏,它的作用是將具體的物理傳送對高層透明蚜迅。
- 4、傳輸層:提供建立俊抵、維護(hù)和拆除傳送連接的功能谁不;選擇網(wǎng)絡(luò)層提供最合適的服務(wù);在系統(tǒng)之間提供可靠的透明的數(shù)據(jù)傳送徽诲,提供端到端的錯誤恢復(fù)和流量控制刹帕。
- 5、會話層:提供兩進(jìn)程之間建立谎替、維護(hù)和結(jié)束會話連接的功能偷溺;提供交互會話的管理功能,如三種數(shù)據(jù)流方向的控制钱贯,即一路交互挫掏、兩路交替和兩路同時會話模式 。
- 6秩命、表示層:代表應(yīng)用進(jìn)程協(xié)商數(shù)據(jù)表示尉共;完成數(shù)據(jù)轉(zhuǎn)換褒傅、格式化和文本壓縮。
- 7袄友、應(yīng)用層:提供OSI用戶服務(wù)殿托,例如事務(wù)處理程序、文件傳送協(xié)議和網(wǎng)絡(luò)管理等剧蚣。
2. HTTP 的工作原理
HTTP(HyperText Transfer Protocol超文本傳輸協(xié)議)是一套計算機(jī)通過網(wǎng)絡(luò)進(jìn)行通信的規(guī)則支竹。HTTP的工作流程可分為四步:
- 客戶端與服務(wù)器建立連接。當(dāng)我們在瀏覽器輸入網(wǎng)址或者當(dāng)我們點擊鏈接時鸠按,HTTP開始工作礼搁。
- 建立連接后,客戶機(jī)發(fā)送一個請求給服務(wù)器目尖,如當(dāng)我們在瀏覽器地址欄輸入www.baidu.com馒吴,瀏覽器將我們的請求封裝成HTTP報文,請求報文的格式為:統(tǒng)一資源標(biāo)識符(URL)卑雁、協(xié)議版本號募书,后邊是MIME信息包括請求修飾符绪囱、客戶機(jī)信息和可能的內(nèi)容测蹲。打開瀏覽器控制臺Network,可看到瀏覽器發(fā)送的請求鬼吵。
- 服務(wù)器接到請求后扣甲,給予相應(yīng)的響應(yīng)信息,其格式為一個狀態(tài)行齿椅,包括信息的協(xié)議版本號琉挖、一個成功或錯誤的代碼,后邊是MIME信息包括服務(wù)器信息涣脚、實體信息和可能的內(nèi)容示辈。
- 客戶端接收服務(wù)器所返回的信息通過瀏覽器顯示在用戶的顯示屏上,然后客戶機(jī)與服務(wù)器斷開連接遣蚀。
3. URI 和常見的協(xié)議
URI和URL
URL(統(tǒng)一資源定位符)是URI(統(tǒng)一資源標(biāo)識符)的一個子集矾麻。
URI由兩個主要的子集構(gòu)成
- URL:通過描述資源的位置來描述資源
-
URN:通過名字來識別資源,和位置無關(guān)
如下幾種URI:
絕對URI的格式:
常見的協(xié)議以及對應(yīng)端口號
(1)FTP 文件傳輸協(xié)議芭梯,使用21端口险耀。
(2)HTTP:超文本傳輸協(xié)議。默認(rèn)80端口玖喘。
(3)HTTPs:具有安全性的ssl加密傳輸協(xié)議甩牺,端口號443.
(4)Telnet:它是一種用于遠(yuǎn)程登陸的端口,用戶可以以自己的身份遠(yuǎn)程連接到計算機(jī)上累奈,通過這種端口可以提供一種基于DOS模式下的通信服務(wù)贬派。如以前的BBS是純字符界面的急但,支持BBS的服務(wù)器將23端口打開,對外提供服務(wù)赠群。
(5)SMTP: 簡單郵件傳送協(xié)議羊始,25端口。
(6)POP3:它是和SMTP對應(yīng)查描,POP3用于接收郵件突委。110端口。
4. HTTP 協(xié)議和服務(wù)器交互的方法
HTTP最大的作用就是客戶端發(fā)送請求冬三,服務(wù)器給出響應(yīng)匀油,客戶端想服務(wù)器發(fā)送請求的方式有很多。
-
GET
GET是最常用的方法勾笆,通常用于請求服務(wù)器發(fā)送某個資源敌蚜。我們平時在瀏覽器輸入網(wǎng)頁地址,就是給服務(wù)器發(fā)送了一個get請求窝爪,希望得到這個網(wǎng)頁弛车。 -
POST
POST用于想服務(wù)器發(fā)送數(shù)據(jù),通常用來支持HTML的表單(input蒲每、select纷跛、textarea),表單中的數(shù)據(jù)會被發(fā)送到服務(wù)器邀杏。 -
HEAD
HEAD方法和GET類似贫奠,但是在服務(wù)器的響應(yīng)中沒有資源的內(nèi)容,只有資源的一些基本信息望蜡,主要用于:
- 在不獲取資源的情況下獲取資源信息(類型唤崭、大小等)。
- 通過狀態(tài)碼產(chǎn)看資源是否存在脖律。
- 通過查看首部谢肾,測試資源是否被修改了。
PUT
和GET從服務(wù)器獲取資源相反小泉,PUT用于想服務(wù)器寫入資源芦疏。PUT的語義就是讓服務(wù)器用請求的主體部分創(chuàng)建一個請求URL命名的文檔,如果存在就替換TRACE
客戶端發(fā)送一個請求的時候膏孟,這個請求可能會穿過防火墻眯分、代理、網(wǎng)關(guān)和一些其它應(yīng)用程序柒桑,沒個中間節(jié)點都可能修改HTTP請求弊决,TRACE方法允許客戶端在最終請求發(fā)往服務(wù)器的時候,看看它變成了什么樣子。
TRACE請求會在目的服務(wù)器端發(fā)送一個“閉環(huán)”診斷飘诗,行程最后一站服務(wù)器會彈回一條TRACE響應(yīng)与倡,并在響應(yīng)主題中攜帶它收到的原始請求報文。DELETE
DELETE方法用于要求服務(wù)器刪除請求的URL昆稿,和PUT一樣纺座,服務(wù)器可能會不支持。OPTIONS
OPTIONS方法用于請求 web服務(wù)器告知其支持的各種功能溉潭。
5. 狀態(tài)碼
HTTP狀態(tài)碼净响,反映了Web服務(wù)器處理HTTP請求狀態(tài)。HTTP應(yīng)答碼由3位數(shù)字構(gòu)成喳瓣,其中首位數(shù)字定義了應(yīng)答碼的類型:
1XX-信息類(Information),表示收到Web瀏覽器請求馋贤,正在進(jìn)一步的處理中
2XX-成功類(Successful),表示用戶請求被正確接收,理解和處理例如:200 OK成功
3XX-重定向類(Redirection),表示請求沒有成功畏陕,客戶必須采取進(jìn)一步的動作配乓。如
- 301:Moved Permanently,客戶請求的文檔在其他地方惠毁,新的URL在Location頭中給出犹芹,瀏覽器應(yīng)該自動地訪問新的URL。
- 304: Not Modified 客戶端有緩沖的文檔并發(fā)出了一個條件性的請求(一般是提供If-Modified-Since頭表示客戶只想比指定日期更新的文檔)鞠绰。服務(wù)器告 訴客戶腰埂,原來緩沖的文檔還可以繼續(xù)使用。
4XX-客戶端錯誤(Client Error)洞豁,表示客戶端提交的請求有錯誤 例如:404 NOT Found盐固,意味著請求中所引用的文檔不存在荒给。
5XX-服務(wù)器錯誤(Server Error)表示服務(wù)器不能完成對請求的處理:如 500 對于我們Web開發(fā)人員來說掌握HTTP應(yīng)答碼有丈挟。503 Service Unavailable 服務(wù)器由于維護(hù)或者負(fù)載過重未能應(yīng)答。