計(jì)算機(jī)網(wǎng)絡(luò)知識(shí)
-
DNS
即域名系統(tǒng)魁淳。因特網(wǎng)上作為域名和IP地址相互映射的一個(gè)分布式數(shù)據(jù)庫(kù),能夠使用戶更方便的訪問(wèn)互聯(lián)網(wǎng),而不用去記住能夠被機(jī)器直接讀取的IP數(shù)串虱肄。通過(guò)主機(jī)名,最終得到該主機(jī)名對(duì)應(yīng)的IP地址的過(guò)程叫做域名解析(或主機(jī)名解析)交煞。
1咏窿、瀏覽器中輸入www.qq.com域名,操作系統(tǒng)會(huì)先檢查本地的hosts文件是否有這個(gè)網(wǎng)址映射關(guān)系素征,如果有集嵌,就先調(diào)用這個(gè)IP地址映射,完成域名解析御毅。
2根欧、如果hosts里沒(méi)有這個(gè)域名的映射,則查找本地DNS解析器緩存端蛆,是否有這個(gè)網(wǎng)址映射關(guān)系凤粗,如果有,直接返回今豆,完成域名解析嫌拣。
3、如果兩者都沒(méi)有相應(yīng)的網(wǎng)址映射關(guān)系呆躲,首先會(huì)找TCP/IP參數(shù)中設(shè)置的首選DNS服務(wù)器异逐,在此我們叫它本地DNS服務(wù)器,此服務(wù)器收到查詢時(shí)歼秽,如果要查詢的域名应役,包含在本地配置區(qū)域資源中,則返回解析結(jié)果給客戶機(jī)燥筷,完成域名解析箩祥,此解析具有權(quán)威性。
4肆氓、如果要查詢的域名袍祖,不由本地DNS服務(wù)器區(qū)域解析,但該服務(wù)器已緩存了此網(wǎng)址映射關(guān)系谢揪,則調(diào)用這個(gè)IP地址映射蕉陋,完成域名解析捐凭,此解析不具有權(quán)威性。
5凳鬓、如果本地DNS服務(wù)器本地區(qū)域文件與緩存解析都失效茁肠,則根據(jù)本地DNS服務(wù)器的設(shè)置(是否設(shè)置轉(zhuǎn)發(fā)器)進(jìn)行查詢,如果未用轉(zhuǎn)發(fā)模式缩举,本地DNS就把請(qǐng)求發(fā)至13臺(tái)根DNS垦梆,根DNS服務(wù)器收到請(qǐng)求后會(huì)判斷這個(gè)域名(.com)是誰(shuí)來(lái)授權(quán)管理,并會(huì)返回一個(gè)負(fù)責(zé)該頂級(jí)域名服務(wù)器的一個(gè)IP仅孩。本地DNS服務(wù)器收到IP信息后托猩,將會(huì)聯(lián)系負(fù)責(zé).com域的這臺(tái)服務(wù)器。這臺(tái)負(fù)責(zé).com域的服務(wù)器收到請(qǐng)求后辽慕,如果自己無(wú)法解析京腥,它就會(huì)找一個(gè)管理.com域的下一級(jí)DNS服務(wù)器地址(qq.com)給本地DNS服務(wù)器。當(dāng)本地DNS服務(wù)器收到這個(gè)地址后溅蛉,就會(huì)找qq.com域服務(wù)器公浪,重復(fù)上面的動(dòng)作,進(jìn)行查詢船侧,直至找到www.qq.com主機(jī)因悲。
6、如果用的是轉(zhuǎn)發(fā)模式勺爱,此DNS服務(wù)器就會(huì)把請(qǐng)求轉(zhuǎn)發(fā)至上一級(jí)DNS服務(wù)器晃琳,由上一級(jí)服務(wù)器進(jìn)行解析,上一級(jí)服務(wù)器如果不能解析琐鲁,或找根DNS或把轉(zhuǎn)請(qǐng)求轉(zhuǎn)至上上級(jí)卫旱,以此循環(huán)。不管是本地DNS服務(wù)器用是是轉(zhuǎn)發(fā)围段,還是根提示顾翼,最后都是把結(jié)果返回給本地DNS服務(wù)器,由此DNS服務(wù)器再返回給客戶機(jī)奈泪。
-
ARP
在同一個(gè)網(wǎng)絡(luò)(無(wú)特別說(shuō)明适贸,均指以太網(wǎng)絡(luò))中進(jìn)行通信的主機(jī),必須要擁有目標(biāo)主機(jī)的MAC地址才能夠正確地將數(shù)據(jù)發(fā)送給目標(biāo)主機(jī)涝桅,那么如何知道目標(biāo)主機(jī)的MAC地址呢拜姿?可以通過(guò)ARP協(xié)議。ARP協(xié)議就是用來(lái)獲取目標(biāo)IP地址所對(duì)應(yīng)的MAC地址的冯遂,也就是說(shuō)蕊肥,ARP協(xié)議可以動(dòng)態(tài)地在三層IP地址和二層MAC地址之間建立一種映射關(guān)系。
ARP是一個(gè)網(wǎng)絡(luò)層的協(xié)議蛤肌,這是出于它為網(wǎng)絡(luò)層的IP協(xié)議提供服務(wù)而考慮的壁却。但實(shí)際上批狱,由于ARP協(xié)議用以解析出IP地址(邏輯地址)所對(duì)應(yīng)數(shù)據(jù)鏈路層中的地址(物理地址/硬件地址),所以把其劃分在數(shù)據(jù)鏈路層也是沒(méi)有問(wèn)題的展东,這并沒(méi)有嚴(yán)格的定義赔硫。
-
RIP
路由選擇協(xié)議,:確定數(shù)據(jù)報(bào)在源與目的地之間采用的路徑
-
HTPP請(qǐng)求
HTTP(HyperText Transfer Protocol盐肃,超文本傳輸協(xié)議)卦停,即計(jì)算機(jī)通過(guò)網(wǎng)絡(luò)通信的規(guī)則。
HTTP通信機(jī)制是在一次完整的HTTP通信過(guò)程中恼蓬,Web瀏覽器與Web服務(wù)器之間將完成下列7個(gè)步驟:
1) 建立TCP連接
在HTTP工作開始之前,Web瀏覽器首先要通過(guò)網(wǎng)絡(luò)與Web服務(wù)器建立TCP連接僵芹,該協(xié)議與IP協(xié)議共同構(gòu)建Internet处硬,即著名的TCP/IP協(xié)議族,因此Internet又被稱作TCP/IP網(wǎng)絡(luò)拇派。
HTTP是比TCP更高層次的應(yīng)用層協(xié)議荷辕,根據(jù)規(guī)則,低層協(xié)議建立之后才能進(jìn)行更層協(xié)議的連接件豌,因此疮方,首先要建立TCP連接
一般TCP連接的端口號(hào)是80
2) Web瀏覽器向Web服務(wù)器發(fā)送請(qǐng)求命令
一旦建立了TCP連接,Web瀏覽器就會(huì)向Web服務(wù)器發(fā)送請(qǐng)求命令
例如:GET/sample/hello.jsp HTTP/1.1
3) Web瀏覽器發(fā)送請(qǐng)求頭信息
瀏覽器發(fā)送其請(qǐng)求命令之后茧彤,還要以頭信息的形式向Web服務(wù)器發(fā)送一些別的信息骡显,之后瀏覽器發(fā)送了一空白行來(lái)通知服務(wù)器,它已經(jīng)結(jié)束了該頭信息的發(fā)送曾掂。
4) Web服務(wù)器應(yīng)答
客戶機(jī)向服務(wù)器發(fā)出請(qǐng)求后惫谤,服務(wù)器會(huì)向客戶機(jī)回送應(yīng)答,
HTTP/1.1 200 OK
應(yīng)答的第一部分是協(xié)議的版本號(hào)和應(yīng)答狀態(tài)碼
5) Web服務(wù)器發(fā)送應(yīng)答頭信息
服務(wù)器隨同應(yīng)答向用戶發(fā)送關(guān)于它自己的數(shù)據(jù)及被請(qǐng)求的文檔珠洗。
6) Web服務(wù)器向?yàn)g覽器發(fā)送數(shù)據(jù)
以Content-Type應(yīng)答頭信息所描述的格式發(fā)送用戶所請(qǐng)求的實(shí)際數(shù)據(jù)
7) Web服務(wù)器關(guān)閉TCP連接
一般情況下溜歪,一旦Web服務(wù)器向?yàn)g覽器發(fā)送了請(qǐng)求數(shù)據(jù),它就要關(guān)閉TCP連接许蓖,然后如果瀏覽器或者服務(wù)器在其頭信息加入了這行代碼
Connection:keep-alive
TCP連接在發(fā)送后將仍然保持打開狀態(tài)蝴猪,于是,瀏覽器可以繼續(xù)通過(guò)相同的連接發(fā)送請(qǐng)求膊爪。
保持連接節(jié)省了為每個(gè)請(qǐng)求建立新連接所需的時(shí)間自阱,還節(jié)約了網(wǎng)絡(luò)帶寬。
請(qǐng)求報(bào)文格式:請(qǐng)求方法URI協(xié)議/版本米酬、 請(qǐng)求頭(Request Header)动壤、 請(qǐng)求正文
GET/sample.jspHTTP/1.1
Accept:image/gif.image/jpeg,*/*
Accept-Language:zh-cn
Connection:Keep-Alive
Host:localhost
User-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0)
Accept-Encoding:gzip,deflate
username=jinqiao&password=1234
響應(yīng)報(bào)文格式:協(xié)議狀態(tài)版本代碼描述、響應(yīng)頭(Response Header)淮逻、響應(yīng)正文
- get方法與post方法對(duì)比
GET方法
GET方法是默認(rèn)的HTTP請(qǐng)求方法琼懊,我們?nèi)粘S肎ET方法來(lái)提交表單數(shù)據(jù)阁簸,然而用GET方法提交的表單數(shù)據(jù)只經(jīng)過(guò)了簡(jiǎn)單的編碼,同時(shí)它將作為URL的一部分向Web服務(wù)器發(fā)送哼丈,因此启妹,如果使用GET方法來(lái)提交表單數(shù)據(jù)就存在著安全隱患上。例如
Http://127.0.0.1/login.jsp?Name=zhangsan&Age=30&Submit=%cc%E+%BD%BB
從上面的URL請(qǐng)求中醉旦,很容易就可以辯認(rèn)出表單提交的內(nèi)容饶米。另外由于GET方法提交的數(shù)據(jù)是作為URL請(qǐng)求的一部分所以提交的數(shù)據(jù)量不能太大
POST方法
POST方法是GET方法的一個(gè)替代方法,它主要是向Web服務(wù)器提交表單數(shù)據(jù)车胡,尤其是大批量的數(shù)據(jù)檬输。POST方法克服了GET方法的一些缺點(diǎn)。通過(guò)POST方法提交表單數(shù)據(jù)時(shí)匈棘,數(shù)據(jù)不是作為URL請(qǐng)求的一部分而是作為標(biāo)準(zhǔn)數(shù)據(jù)傳送給Web服務(wù)器丧慈,這就克服了GET方法中的信息無(wú)法保密和數(shù)據(jù)量太小的缺點(diǎn)。因此主卫,出于安全的考慮以及對(duì)用戶隱私的尊重逃默,通常表單提交時(shí)采用POST方法。
-
cookie
HTTP Cookie(也叫Web cookie或者瀏覽器Cookie)是服務(wù)器發(fā)送到用戶瀏覽器并保存在瀏覽器上的一塊數(shù)據(jù)簇搅,它會(huì)在瀏覽器下一次發(fā)起請(qǐng)求時(shí)被攜帶并發(fā)送到服務(wù)器上完域。比較經(jīng)典的,可以它用來(lái)確定兩次請(qǐng)求是否來(lái)自于同一個(gè)瀏覽器瘩将,從而能夠確認(rèn)和保持用戶的登錄狀態(tài)吟税。Cookie的使用使得基于無(wú)狀態(tài)的HTTP協(xié)議上記錄穩(wěn)定的狀態(tài)信息成為了可能。
cookie的屬性
key-value:cookie通過(guò)key-value的方式存儲(chǔ)屬性名和值姿现。
domain:規(guī)定了需要發(fā)送Cookie的主機(jī)名乌妙。如果沒(méi)有指定,默認(rèn)為當(dāng)前的文檔地址上的主機(jī)名(但是不包含子域名)建钥。如果指定了Domain藤韵,則一般包含子域名。
path:Path指令表明需要發(fā)送Cookie的URL路徑熊经。字符%x2F (即"/")用做文件夾分隔符泽艘,子文件夾也會(huì)被匹配到。
hostOnly:布爾型的值镐依,true表示cookie只能匹配domain中指定好的請(qǐng)求路徑匹涮。反之則不。
httpOnly:HTTP-only類型的Cookie不能使用Javascript通過(guò)Document.cookie
屬性來(lái)訪問(wèn)槐壳,從而能夠在一定程度上阻止跨域腳本攻擊(XSS)然低。
secure:布爾型的值,true表示cookie只在安全的情況下有效。一般是在https情況下雳攘。即在使用SLL和HTTPS協(xié)議向服務(wù)器發(fā)起請(qǐng)求時(shí)带兜,才能確保Cookie被安全地發(fā)送到服務(wù)器。
expirationDate:指明cookie的過(guò)期的時(shí)間吨灭。
Max-Age:指明cookie的有效期刚照。
session:布爾值,true表示cookie是session cookie喧兄。false的話表示持續(xù)的cookie且不過(guò)期无畔。
storeId:代表存放cookie的id的字符串。
-
HTTP與HTTPS
HTTPS(全稱:Hypertext Transfer Protocol over Secure Socket Layer)吠冤,是以安全為目標(biāo)的HTTP通道浑彰,簡(jiǎn)單講是HTTP的安全版。即HTTP下加入SSL層拯辙,HTTPS的安全基礎(chǔ)是SSL郭变,因此加密的詳細(xì)內(nèi)容就需要SSL。
https協(xié)議需要到ca申請(qǐng)證書薄风,一般免費(fèi)證書很少,需要交費(fèi)拍嵌。http是超文本傳輸協(xié)議遭赂,信息是明文傳輸,https 則是具有安全性的ssl加密傳輸協(xié)議http和https使用的是完全不同的連接方式用的端口也不一樣,前者是80,后者是443横辆。
客戶端產(chǎn)生一個(gè)對(duì)稱的密鑰,通過(guò)server 的證書來(lái)交換密鑰. 一般意義上的握手過(guò)程.ii. 加下來(lái)所有的信息往來(lái)就都是加密的. 第三方即使截獲,也沒(méi)有任何意義.因?yàn)樗麤](méi)有密鑰
-
HTTP狀態(tài)碼
-
HTTP請(qǐng)求方法method
- URL撇他、URN與URI
URI:uniform resource identifier,統(tǒng)一資源標(biāo)識(shí)符,用于唯一的標(biāo)識(shí)一個(gè)資源狈蚤。
URL:uniform resource locator困肩,統(tǒng)一資源定位器,它是一種具體的URI脆侮,即URL可以用來(lái)標(biāo)識(shí)一個(gè)資源锌畸,而且還指明了如何locate這個(gè)資源
URN:uniform resource name,統(tǒng)一資源命名靖避,是通過(guò)名字來(lái)標(biāo)識(shí)資源潭枣。
URI是以一種抽象的,高層次概念定義統(tǒng)一資源標(biāo)識(shí)幻捏,而URL和URN則是具體的資源標(biāo)識(shí)的方式盆犁。URL和URN都是一種URI。