1.OSI 七層模型指什么
概念:開放式系統(tǒng)互聯(lián)通信參考模型,簡稱為OSI模型,一個(gè)試圖使各種計(jì)算機(jī)在世界范圍內(nèi)互連為網(wǎng)絡(luò)的標(biāo)準(zhǔn)框架.
2.HTTP 的工作原理是什么?
HTTP協(xié)議定義Web客戶端如何從Web服務(wù)器請(qǐng)求Web頁面,以及服務(wù)器如何把Web頁面?zhèn)魉徒o客戶端陋葡。HTTP協(xié)議采用了請(qǐng)求/響應(yīng)模型〔甭簦客戶端向服務(wù)器發(fā)送一個(gè)請(qǐng)求報(bào)文朱庆,請(qǐng)求報(bào)文包含請(qǐng)求的方法榨惠、URL罐韩、協(xié)議版本憾赁、請(qǐng)求頭部和請(qǐng)求數(shù)據(jù)。服務(wù)器以一個(gè)狀態(tài)行作為響應(yīng)伴逸,響應(yīng)的內(nèi)容包括協(xié)議的版本缠沈、成功或者錯(cuò)誤代碼、服務(wù)器信息错蝴、響應(yīng)頭部和響應(yīng)數(shù)據(jù)。下圖表明了這種請(qǐng)求/響應(yīng)模型颓芭。
以下是HTTP請(qǐng)求/響應(yīng)的步驟:
(1)客戶端連接到Web服務(wù)器
一個(gè)HTTP客戶端顷锰,通常是瀏覽器,與Web服務(wù)器的HTTP端口(默認(rèn)為80)建立一個(gè)TCP套接字連接亡问。例如官紫,http://www.oakcms.cn肛宋。
(2)發(fā)送HTTP請(qǐng)求
通過TCP套接字,客戶端向Web服務(wù)器發(fā)送一個(gè)文本的請(qǐng)求報(bào)文束世,一個(gè)請(qǐng)求報(bào)文由請(qǐng)求行酝陈、請(qǐng)求頭部、空行和請(qǐng)求數(shù)據(jù)4部分組成毁涉。
(3)服務(wù)器接受請(qǐng)求并返回HTTP響應(yīng)
Web服務(wù)器解析請(qǐng)求沉帮,定位請(qǐng)求資源。服務(wù)器將資源復(fù)本寫到TCP套接字贫堰,由客戶端讀取穆壕。一個(gè)響應(yīng)由狀態(tài)行、響應(yīng)頭部其屏、空行和響應(yīng)數(shù)據(jù)4部分組成喇勋。
(4)釋放連接TCP連接
Web服務(wù)器主動(dòng)關(guān)閉TCP套接字,釋放TCP連接偎行;客戶端被動(dòng)關(guān)閉TCP套接字川背,釋放TCP連接。
(5)客戶端瀏覽器解析HTML內(nèi)容
客戶端瀏覽器首先解析狀態(tài)行蛤袒,查看表明請(qǐng)求是否成功的狀態(tài)代碼熄云。然后解析每一個(gè)響應(yīng)頭,響應(yīng)頭告知以下為若干字節(jié)的HTML文檔和文檔的字符集汗盘≈宓猓客戶端瀏覽器讀取響應(yīng)數(shù)據(jù)HTML,根據(jù)HTML的語法對(duì)其進(jìn)行格式化隐孽,并在瀏覽器窗口中顯示癌椿。
3.URI 的格式是什么?常見的協(xié)議有哪些
格式:
如用客戶端瀏覽器請(qǐng)求這個(gè)頁面:http://localhost.com:8080/index.htm
從中分解出協(xié)議名菱阵、主機(jī)名踢俄、端口、對(duì)象路徑等部分晴及,對(duì)于我們的這個(gè)地址都办,解析得到的結(jié)果如下: 協(xié)議名:http 主機(jī)名:localhost.com 端口:8080 對(duì)象路徑:/index.htm
常見的協(xié)議:
HTTP、HTTPS虑稼、FTP
4.HTTP 協(xié)議有幾種和服務(wù)器交互的方法
交互的方法:
1.GET:請(qǐng)求服務(wù)器發(fā)送某個(gè)資源琳钉。
2.POST:向服務(wù)器發(fā)送數(shù)據(jù),通常用于支持HTML的表單input等蛛倦,表單中的數(shù)據(jù)會(huì)被發(fā)送到服務(wù)器歌懒。
3.HEAD:HEAD方法與GET類似,但是在服務(wù)器的響應(yīng)中沒有資源的內(nèi)容溯壶,只有資源的一些基本信息及皂,主要用于查看資源大小甫男、類型,是否存在验烧,查看資源是否被修改板驳。
4.PUT:跟GET從服務(wù)器獲取資源相反、它是用于給服務(wù)器寫入一個(gè)資源碍拆。
5.TRACE: 用于查看發(fā)送到服務(wù)器的請(qǐng)求是否被服務(wù)器接收或者在發(fā)送過程中被修改若治。
6.DELETE:請(qǐng)求服務(wù)器刪除對(duì)應(yīng)URL。
7.OPTIONS:請(qǐng)求查閱服務(wù)器性能或查閱資源相關(guān)的選項(xiàng)需求
5.http和 https是什么?有什么區(qū)別?
https, 全稱Hyper Text Transfer Protocol Secure倔监,相比http直砂,多了一個(gè)secure,保護(hù)的意思,https和http都屬于application layer浩习,基于TCP(以及UDP)協(xié)議静暂,但是又完全不一樣。
總體來說谱秽,https和http類似洽蛀,但是比http安全那https具體保護(hù)了啥?保護(hù)了你從連接到這個(gè)網(wǎng)站開始疟赊,
到你關(guān)閉這個(gè)頁面為止郊供,你和這個(gè)網(wǎng)站之間收發(fā)的所有信息,
不會(huì)發(fā)生你輸入www.google.com,實(shí)際上跑到了另一個(gè)網(wǎng)站去了近哟。
https防止DNS攻擊
HTTP的缺點(diǎn):
通信使用明文(不加密), 內(nèi)容可能會(huì)被竊聽
不驗(yàn)證通信方的身份, 因此有可能遭遇偽裝
無法證明報(bào)文的完整性, 所有有可能已遭篡改
HTTP+加密+認(rèn)證+完整性保護(hù) = HTTPS
原理:
HTTPS并非是應(yīng)用層的一種新協(xié)議. 只是HTTP通信接口部分用SLL(Secure Socket Layer)和TLS (Transport Layer Security) 協(xié)議替代而已.
通常, HTTP直接和TCP通信, 當(dāng)使用SSL時(shí), 演變成了先和SSL通信, 再由SSL和TCP通信了, 簡而言之, 所謂HTTPS, 其實(shí)就是身披SSL協(xié)議的這層外殼的HTTP.
在采用SSL后, HTTP就擁有了HTTPS的加密, 證書和完整性的保護(hù)這些功能.
SSL是獨(dú)立于HTTP的協(xié)議, 所有不光是HTTP協(xié)議, 其他運(yùn)行在應(yīng)用層的SMTP(郵件協(xié)議)和Telnet等協(xié)議均可配合SSL協(xié)議使用. 可以說SSL是當(dāng)今世界上應(yīng)用最廣泛的網(wǎng)絡(luò)安全技術(shù).
SSL是如何加密的
SSL采用一種叫做公開密鑰加密(Public-key cryptography)的加密方式.
近代的加密方法中, 加密算法是公開的, 而秘鑰是保密的, 通過這種方式得以保持加密方法的安全性.
既然HTTPS那么的可靠安全, 那為何不所有的Web網(wǎng)站不一直使用HTTPS?
其中的一個(gè)原因是, 因?yàn)榕c純文本通信相比, 加密通信會(huì)消耗更多的CPU資源以及內(nèi)存資源, 如果每次通信都加密, 會(huì)消耗相當(dāng)多的資源, 平攤到一臺(tái)計(jì)算機(jī)上時(shí), 能夠處理的請(qǐng)求數(shù)量必定會(huì)隨之減少.
因此, 如果是非敏感信息則使用HTTP通信, 只有在包括個(gè)人信息等敏感數(shù)據(jù)時(shí), 才利用HTTPS加密通信, 以節(jié)省資源. 除此之外, 想要節(jié)約購買證書的開銷也原因之一.
HTTPS和HTTP的區(qū)別:
https協(xié)議需要到ca申請(qǐng)證書驮审,一般免費(fèi)證書很少,需要交費(fèi)吉执。
http是超文本傳輸協(xié)議疯淫,信息是明文傳輸,https 則是具有安全性的ssl加密傳輸協(xié)議戳玫。
http和https使用的是完全不同的連接方式用的端口也不一樣,前者是80,后者是443熙掺。
http的連接很簡單,是無狀態(tài)的。
HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸咕宿、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議 要比http協(xié)議安全币绩。
6.狀態(tài)碼含義
200:OK客戶端請(qǐng)求成功。
301:重定向府阀,URI發(fā)生了改變?yōu)g覽器自動(dòng)訪問新的URL缆镣。
304:跟上次訪問的緩存相同,直接使用上次緩存试浙。
403:禁止訪問權(quán)限不夠费就。
404:服務(wù)器找不到請(qǐng)求的資源。
500:服務(wù)器執(zhí)行請(qǐng)求發(fā)生錯(cuò)誤
503:服務(wù)器超出載荷或者停機(jī)維護(hù)
7.報(bào)文有哪幾部分組成川队?
一個(gè)HTTP報(bào)文由3部分組成力细,分別是:
(1)、描述性的起始行(start line)
(2)固额、包含屬性的首部(header)
(3)眠蚂、包含數(shù)據(jù)的主體(body) 示例:
HTTP/1.0 200 OK //起始行Content-type:text/plain //首部Content-length:19 //首部 Hi I'm a message! 主體
8.請(qǐng)求頭的格式和作用是什么?
請(qǐng)求報(bào)文與響應(yīng)報(bào)文的格式請(qǐng)求報(bào)文的格式:
<method> <request-UTL> <version><headers><entity-body>
響應(yīng)報(bào)文的格式:
<version> <status><reason-phrase><header><entity-body>
9.首部的格式和作用是什么斗躏?給個(gè)范例截圖說明
服務(wù)器返回給客戶端的文本信息
11.簡述瀏覽器緩存是如何控制的
初次訪問
再次訪問