-
OSI 七層模型指什么
OSI:Open System Interconnection moble矛洞。是一個由國際標準化組織提出來的概念模型借笙,共一個使各種不同的計算機在網(wǎng)絡(luò)和世界范圍內(nèi)實現(xiàn)互聯(lián)的標準框架嗡善,它將計算機網(wǎng)絡(luò)體系結(jié)構(gòu)分為七層,每層都提供良好的接口危虱。如圖(維基百科):
- 物理層:負責(zé)最后將信息編碼或其他信號在網(wǎng)上傳輸脚曾,如網(wǎng)線、網(wǎng)卡等....
- 數(shù)據(jù)鏈路層:它定義了在單個鏈路上如何傳輸數(shù)據(jù)
- 網(wǎng)絡(luò)層:網(wǎng)絡(luò)層負責(zé)在源和終點之間建立連接
- 傳輸層:向用戶提供可靠的端到端的網(wǎng)絡(luò)數(shù)據(jù)流服務(wù)
- 會話層:組織和協(xié)調(diào)兩個會話進程之間的通信,并對數(shù)據(jù)交換進行管理
- 表示層:處理用戶信息的表示問題烧栋,定義數(shù)據(jù)格式和加密解密
- 應(yīng)用層:是計算機及各種應(yīng)用程序網(wǎng)絡(luò)之間的接口写妥,直接向用戶提供服務(wù),完成用戶希望在網(wǎng)絡(luò)上完成的工作审姓。
- HTTP 的工作原理是什么珍特?
- 客戶端跟服務(wù)器建立一個TCP連接
- 通過建立的TCP連接,客戶端向服務(wù)器發(fā)送請求報文
- 服務(wù)器接收到請求后給予響應(yīng):包括服接解析請求魔吐,定位請求資源扎筒,將資源副本寫入TCP連接,由客戶端讀取
- 瀏覽器解析結(jié)果:將響應(yīng)的信息通過瀏覽器顯示在用戶的屏幕上然后客戶端和服務(wù)器斷開連接
- URI 的格式是什么酬姆?常見的協(xié)議有哪些
URI是統(tǒng)一資源標識符嗜桌,而URL是它的一個子集,通用格式為:
<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<hash>
- scheme:對于web頁面來說最常用的協(xié)議就是http和https
- user和password現(xiàn)在不常見辞色,不會在URL明文書寫用戶名和密碼骨宠,都是通過登錄的方式
- host:主機可以是IP地址或者域名
- port端口號用來區(qū)分主機進程,方便找到web服務(wù)器相满,http默認是80
- path是資源的路徑层亿,也是存放位置,不一定和物理路徑完全對應(yīng)立美,符合web服務(wù)器路由約定即可
- params在一些協(xié)議中需要參數(shù)來訪問資源匿又,例如ftp是二進制還是文本傳輸, 參數(shù)是名值對建蹄,用
;
隔開 - query是get請求最常用的傳遞參數(shù)方式了
?a=1&b=2&c=3
- hash也成為片段碌更,設(shè)計為標識文檔的一部分(很多mvvw框架用作路由)
-
HTTP 協(xié)議有幾種和服務(wù)器交互的方法
- get:最常用的方法,用來獲取服務(wù)器資源
- post:一般用來表單提交洞慎,更新服務(wù)器資源
- put:和get相反痛单,向服務(wù)器寫入資源,由于安全問題服務(wù)器一般不支持
- delete:刪除請求的URL劲腿,由于安全問題服務(wù)器一般不支持
- head:和get請求類似桦他,不過不是請求資源。而是請求信息(資源類型谆棱、大小、是否存在...)
- trace:會在目標服務(wù)器發(fā)送一個閉環(huán)診斷圆仔,查看發(fā)送的請求都經(jīng)過哪些節(jié)點垃瞧,有沒有被修改
- options:獲取服務(wù)器支持的方法
-
狀態(tài)碼200,301坪郭, 304个从,403,404,500,503分別代表什么意思
- 200:表示一切正常,請求成功
- 301:表示用戶請求文檔已經(jīng)被永久性改變位置
- 304:表示請求的網(wǎng)頁未發(fā)生改變嗦锐,可繼續(xù)使用緩存
- 403:一般表示有資源卻無權(quán)限訪問
- 404:無法找到指定位置請求的資源
- 500:表示后臺服務(wù)器出現(xiàn)錯誤嫌松,無法處理請求
- 503:表示服務(wù)器超載,無法處理請求
- 報文有哪幾部分組成奕污?
HTTP報文是簡單的格式化數(shù)據(jù)萎羔,每個報文都包含一條來自客戶端的信息或者一條來自服務(wù)器的信息,由三個部分組成:
- 對報文進行描述的起始行 ———— start line
- 包含屬性的首部塊 ———— header
- 可選的包含數(shù)據(jù)的主體部分 ———— body
-
請求頭的格式和作用是什么碳默?給個范例截圖說明
- Accept:客戶端可接受的類型
- Accept-Encoding:客戶端接受的壓縮編碼
- Accept-Language:客戶端接受的語言
- Cache-Control:客戶端接受的緩存控制
- Connection:告知服務(wù)器連接
- Host:請求的主機名贾陷,允許多個域名同處一個IP地址,即虛擬主機
- User-Agent:產(chǎn)生請求的瀏覽器類型
-
首部的格式和作用是什么嘱根?給個范例截圖說明
- Request URL:請求的域名
- Request Method:請求的方法
- Status Code:狀態(tài)碼
- Remote Address:接受的遠程服務(wù)器地址和端口號
-
主體的作用是什么髓废?給個范例
主體就是客戶端和服務(wù)端之間傳輸?shù)闹饕獌?nèi)容,一般是圖片该抒、視頻慌洪、HTML文檔等。
-
簡述瀏覽器緩存是如何控制的
Cache-control:在HTTP頭部設(shè)置Cache-control來控制緩存的時間凑保,等時間到了緩存失效冈爹,單位為秒,如:Cache-control: max-age=5 表示當訪問此網(wǎng)頁后的5秒內(nèi)不會去再次訪問服務(wù)器
Expires:設(shè)置緩存的失效日期愉适,在過期時間以內(nèi)犯助,若再次發(fā)起請求,通常瀏覽器都不會與服務(wù)器進行任何通信维咸,而是直接使用本地副本剂买。當 Expires 和 Cache-Control 同時出現(xiàn)時,通常后者會覆蓋前者的設(shè)定
Last-Modified:在瀏覽器第一次請求某一個URL時癌蓖,服務(wù)器端的返回狀態(tài)會是200瞬哼,內(nèi)容是你請求的資源,同時有一個Last-Modified的屬性標記(HttpReponse Header)此文件在服務(wù)期端最后被修改的時間,客戶端第二次請求此URL時租副,根據(jù)HTTP協(xié)議的規(guī)定坐慰,瀏覽器會向服務(wù)器傳送If-Modified-Since報頭(HttpRequest Header),詢問該時間之后文件是否有被修改過,如果服務(wù)器端的資源沒有變化用僧,則自動返回HTTP304(NotChanged.)狀態(tài)碼结胀,內(nèi)容為空,這樣就節(jié)省了傳輸數(shù)據(jù)量责循。當服務(wù)器端代碼發(fā)生改變或者重啟服務(wù)器時糟港,則重新發(fā)出資源,返回和第一次請求時類似院仿。從而保證不向客戶端重復(fù)發(fā)出資源秸抚,也保證當服務(wù)器有變化時速和,客戶端能夠得到最新的資源。
ETag:使用 ETag 驗證緩存的響應(yīng)剥汤,Etag是服務(wù)器自動生成或者由開發(fā)者生成的對應(yīng)資源在服務(wù)器端的唯一標識符颠放,能夠更加準確的控制緩存。
優(yōu)先級:Cache-Control/Expires的優(yōu)先級要高于Last-Modified/ETag吭敢。即當本地副本根據(jù)Cache-Control/Expires發(fā)現(xiàn)還在有效期內(nèi)時碰凶,則不會再次發(fā)送請求去服務(wù)器詢問修改時間(Last-Modified)或?qū)嶓w標識(Etag)了。
- 本博客版權(quán)歸羞澀的澀和饑人谷所有省有,轉(zhuǎn)載請注明出處