問答:
1.OSI 七層模型指什么 (難度***)
物理層:物理層考慮的是怎樣在各種連接計算機的媒體上傳輸數(shù)據(jù)比特流柳骄,確保到了數(shù)據(jù)鏈路層感受不到各種通信手段的差異罢维。這一層傳輸比特流(1000100111這樣)携栋。
數(shù)據(jù)鏈路層:這一層是在物理層和網(wǎng)絡(luò)層之間,作用也是讓這兩層通信血筑。數(shù)據(jù)鏈路層把網(wǎng)絡(luò)層交下來的數(shù)據(jù)構(gòu)成幀發(fā)送到鏈路上闰围,以及把接收到的幀中的數(shù)據(jù)取出并上交給網(wǎng)絡(luò)層
網(wǎng)絡(luò)層:網(wǎng)絡(luò)層提供的是數(shù)據(jù)報元旬。網(wǎng)絡(luò)層設(shè)計的簡單靈活榴徐,通過虛擬IP網(wǎng)絡(luò)讓位于不同地理位置的主機之間建立通信,網(wǎng)絡(luò)層以上采用的都是IP地址而非物理地址
運輸層:運輸層為不同主機上的進程提供端到端的邏輯通信(所謂邏輯通信是好像直接建立了端到端的通信匀归,但事實上的物理連接不是這樣)功能坑资。運輸層使用協(xié)議端口號(像http協(xié)議的80端口)來找到不同端口,后續(xù)根據(jù)協(xié)議交付目的進程穆端。TCP協(xié)議袱贮、UDP協(xié)議就是這一層的協(xié)議,不同協(xié)議提供不同的服務(wù)模型
會話層:會話層的功能是建立兩個節(jié)點之間的連接体啰,確定是雙工工作(每一方同時發(fā)送和接收)還是半雙工工作(輪流發(fā)送和接收)攒巍,保持通信過程中連接的暢通,決定連接是否中斷荒勇,決定中斷后從何處重新連接
表示層:在應(yīng)用層和會話層之間柒莉,主要作用就是將應(yīng)用層發(fā)送過來的數(shù)據(jù)進行處理,包括數(shù)據(jù)格式的轉(zhuǎn)換沽翔、數(shù)據(jù)的加密解密兢孝、數(shù)據(jù)的壓縮。應(yīng)用層負責(zé)處理語義而表示層負責(zé)處理語法仅偎,這樣才能保證不同計算機使用不同編碼格式的內(nèi)容最后都能被轉(zhuǎn)化成比特流傳輸西潘,傳輸?shù)狡渌娔X后也能轉(zhuǎn)化回來
應(yīng)用層:通信服務(wù)最終還是要給應(yīng)用進程提供服務(wù),應(yīng)用層的協(xié)議就是精確定義這些通信規(guī)則哨颂,讓不同應(yīng)用進程相互協(xié)調(diào)工作。例如HTTP協(xié)議具體規(guī)定報文類型相种、報文語法威恼、報文中各字段信息的含義品姓、進程具體何時發(fā)送報文、進程如何響應(yīng)報文
2.HTTP 的工作原理是什么箫措? (難度***)
一次HTTP操作稱為一個事務(wù)腹备,其工作過程可分為四步:
客戶機與服務(wù)器需要建立連接。只要單擊某個超級鏈接斤蔓,HTTP的工作就開始了植酥。
建立連接后,客戶機發(fā)送一個請求給服務(wù)器弦牡,請求方式的格式為:統(tǒng)一資源標(biāo)識符(URL)友驮、協(xié)議版本號,后邊是MIME信息包括請求修飾符驾锰、客戶機信息和可能的內(nèi)容卸留。
服務(wù)器接到請求后,給予相應(yīng)的響應(yīng)信息椭豫,其格式為一個狀態(tài)行耻瑟,包括信息的協(xié)議版本號、一個成功或錯誤的代碼赏酥,后邊是MIME信息包括服務(wù)器信息喳整、實體信息和可能的內(nèi)容。
客戶端接收服務(wù)器所返回的信息通過瀏覽器顯示在用戶的顯示屏上裸扶,然后客戶機與服務(wù)器斷開連接框都。
如果在以上過程中的某一步出現(xiàn)錯誤,那么產(chǎn)生錯誤的信息將返回到客戶端姓言,由顯示屏輸出瞬项。對于用戶來說,這些過程是由HTTP自己完成的何荚,用戶只要用鼠標(biāo)點擊囱淋,等待信息顯示就可以了。
3.URI 的格式是什么餐塘?常見的協(xié)議有哪些 (難度***)
URI的全稱是統(tǒng)一資源標(biāo)識符妥衣, 是Uniform Resource Identifier 的縮寫,
URL的全程是統(tǒng)一資源定位符戒傻,是Uniform Resource Locator的縮寫税手。
URL是URI的子集,URL除了像URI確定一個資源,還提供一種定位該資源的主要訪問機制(http ://or ftp://)需纳。
URI格式:
<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<hash>
scheme :協(xié)議名 如http ://or ftp://
<user>:<password> :登陸信息(驗證)芦倒,從服務(wù)器獲取資源需要輸入必要的用戶名和密碼,一般很少見
host:服務(wù)器地址 可以是IP地址或者域名
常見的 協(xié)議有:http不翩、ftp兵扬、file麻裳、telnet、mailto 等
port :網(wǎng)絡(luò)端口號 器钟,如果省略走默認端口津坑, http默認80,https 默認443 傲霸,ftp默認21疆瑰。
path:資源路徑
params:在一些協(xié)議中需要參數(shù)來訪問資源,例如ftp是二進制還是文本傳輸昙啄,參數(shù)是名值對穆役,用;
隔開
query: get請求傳遞的參數(shù) ,是一組組鍵值對
hash:也成為片段跟衅,設(shè)計為標(biāo)識文檔的一部分孵睬,很多MVVM框架用作了路由功能
4.HTTP 協(xié)議有幾種和服務(wù)器交互的方法 (難度***)
GET:最常用的方法,通常用于請求服務(wù)器發(fā)送某個資源
-
HEAD:和GET類似伶跷,只是不反回報文的主體部分掰读,主要用于
- 在不獲取資源的情況下獲取資源信息(類型、大小叭莫,資源的更新時間等)
- 通過狀態(tài)碼產(chǎn)看資源是否存在
- 通過查看首部蹈集,測試資源是否被修改了
POST:用于向服務(wù)器發(fā)送數(shù)據(jù),相比GET方法的傳輸數(shù)據(jù)量更大,保密性更好
OPTIONS:詢問服務(wù)器支持那些方法雇初?
TRACE:TRACE請求會在目的服務(wù)器端發(fā)送一個“閉環(huán)”診斷拢肆,行程最后一站服務(wù)器會彈回一條TRACE響應(yīng),并在響應(yīng)主題中攜帶它收到的原始請求報文
PUT:用于想服務(wù)器寫入資源靖诗。PUT的語義就是讓服務(wù)器用請求的主體部分創(chuàng)建一個請求URL命名的文檔郭怪,如果存在就替換,由于安全原因刊橘,一般不支持鄙才。
DELETE:用于要求服務(wù)器刪除請求的URL,和PUT一樣促绵,服務(wù)器可能會不支持
5.狀態(tài)碼200攒庵,301, 304败晴,403,404,500浓冒,503分別代表什么意思 (難度****)
- 200 ok 成功
- 204 No Content請求處理成功,但是沒有資源返回
- 301 Move Permanently 永久重定向
- 302 Found 請求資源位置臨時移動尖坤,區(qū)別于301
- 304 Not Modified 服務(wù)器資源未改變稳懒,可以直接使用客戶端未過期緩存
- 403 Forbidden 資源不可用。服務(wù)器理解客戶的請求慢味,但拒絕處理它场梆。通常由于服務(wù)器上文件或目錄的權(quán)限設(shè)置導(dǎo)致
- 404 Not Found 無法找到指定位置的資源
- 500 Not Implemented 服務(wù)器不支持實現(xiàn)請求所需要的功能佛致。例如,客戶發(fā)出了一個服務(wù)器不支持的PUT請求辙谜。
- 503 Service Unavailable 服務(wù)器由于維護或者負載過重未能應(yīng)答。例如感昼,Servlet可能在數(shù)據(jù)庫連接池已滿的情況下返回503
6.報文有哪幾部分組成装哆? (可選 難度****)
- 對報文進行描述的起始行 start line
- 包含屬性的首部塊 header
- 包含數(shù)據(jù)的主體部分(可選) body
7.請求頭的格式和作用是什么?給個范例截圖說明 (可選 難度****)
8.主體的作用是什么定嗓?給個范例(可選 截圖說明難度****)
服務(wù)器返回客戶端的html 圖片
服務(wù)器返回的JSON
9簡述瀏覽器緩存是如何控制的(可選 難度*****)
10.下圖各個參數(shù)是什么意思(可選 難度*****)
參考文檔:
- 課件
- HTTP協(xié)議請求-Kencery-cnblog
- HTTP深入淺出 http請求-尹京昱-cnblog
- URI vs URL
- 圖解 HTTP-書
- 瀏覽器 HTTP 協(xié)議緩存機制詳解
本教程版權(quán)歸小韓同學(xué)和饑人谷所有蜕琴,轉(zhuǎn)載須說明來源