呵呵,天知道我為什么要寫這個(gè)。
-
Http基礎(chǔ)
-
簡述
http協(xié)議(超文本傳輸協(xié)議)為了Web上的信息共享而誕生
三個(gè)版本:0.9; 1.0; 1.1
-
網(wǎng)絡(luò)基礎(chǔ)
建立在TCP/IP協(xié)議族的基礎(chǔ)之上
-
TCP/IP協(xié)議族
應(yīng)用層:決定了向用戶提供應(yīng)用服務(wù)時(shí)的通信活動(dòng),如FTP,DNS和HTTP等;
傳輸層:提供處于網(wǎng)絡(luò)連接中的兩臺(tái)計(jì)算機(jī)之間的數(shù)據(jù)傳輸,TCP,UDP;
網(wǎng)絡(luò)層:用來處理網(wǎng)絡(luò)上流動(dòng)的數(shù)據(jù)包,IP協(xié)議;
鏈路層:網(wǎng)絡(luò)連接的硬件部分。
數(shù)據(jù)在各層中封裝后進(jìn)行傳輸
1.PNG2.PNG -
IP協(xié)議
IP協(xié)議的作用是把各種數(shù)據(jù)包傳送給接收方,其中IP地址和MAC地址用于確定接收方的位置。IP地址可以通過ARP協(xié)議(Adress Resolution Protocol) 反查出對(duì)應(yīng)的MAC地址
3.PNG -
TCP協(xié)議
TCP協(xié)議能夠?qū)?shù)據(jù)準(zhǔn)確可靠地傳輸給接收方,(三次握手)。
4.PNG -
DNS服務(wù)
DNS服務(wù)位于應(yīng)用層。它提供域名到IP地址之間的解析服務(wù)
域名易于人類理解,IP地址易于計(jì)算機(jī)理解
5.PNG
-
-
簡單結(jié)構(gòu)
http協(xié)議用于客戶端與服務(wù)端之間的通信,切為無狀態(tài)協(xié)議。
通過URI(Uniform Resource Identifier 統(tǒng)一資源標(biāo)志符)定位請(qǐng)求資源,url是URL的一個(gè)自己
http方法,常用 post,get
6.PNG一個(gè)頁面一般會(huì)存在很多資源請(qǐng)求,如圖片,腳本等資源。每一個(gè)請(qǐng)求都進(jìn)行打開關(guān)閉TCP連接操作,增加了通信的開銷,頁面的加載速度也會(huì)變慢。因此,http中又有了持久連接的機(jī)制。建立一次連接后可進(jìn)行多次客戶端與服務(wù)端之間的交互,直到其中一方明確表示需要斷開連接。
7.PNG8.PNG在持久連接基礎(chǔ)上可以實(shí)現(xiàn)管線化,可以同時(shí)發(fā)送多個(gè)請(qǐng)求。
9.PNGhttp協(xié)議的無狀態(tài)特性可以減少服務(wù)器的CPU以及內(nèi)存資源的消耗,卻也因此無法對(duì)用戶進(jìn)行認(rèn)證。所以就有了Cookie來管理狀態(tài),將消耗分擔(dān)到了每個(gè)客戶端。
-
-
HTTP信息
-
報(bào)文信息
客戶端的Htpp報(bào)文叫做請(qǐng)求報(bào)文,服務(wù)器端的Http報(bào)文叫響應(yīng)報(bào)文,報(bào)文使用CR+LF作為換行符
報(bào)文分為報(bào)文首部和報(bào)文主體,報(bào)文首部一般有四種:通用首部,請(qǐng)求首部,響應(yīng)首部和實(shí)體首部;在客戶端與服務(wù)器之間進(jìn)行通信過程中,無論是請(qǐng)求首部還是響應(yīng)首部都能起到傳遞額外重要信息的作用,如報(bào)文主體大小,所使用的的語言和認(rèn)證信息等等
10.PNG11.PNG16.PNG-
通用字段
Cache-Control:用于操作緩存的工作機(jī)制,如緩存時(shí)間,是否必須向服務(wù)器確認(rèn)等
Connection:控制不再轉(zhuǎn)發(fā)給代理的首部字段和持久連接,http1.1版本默認(rèn)的連接都是持久連接
Date:表明創(chuàng)建Http報(bào)文的日期和時(shí)間
Transfer-Encoding:規(guī)定傳輸報(bào)文主體時(shí)采用的編碼方式
-
請(qǐng)求首部
Accept:通知服務(wù)器客戶端可以處理的媒體類型以及媒體類型的相對(duì)優(yōu)先級(jí),如 application/json,text/html,image/jpeg等。優(yōu)先級(jí)使用q=來表示權(quán)重,最大值為1,默認(rèn)權(quán)重為1.0
Accept-Language:通知服務(wù)器客戶端可以處理的語言集以及相對(duì)優(yōu)先級(jí)
Authorization:用于高速服務(wù)區(qū)客戶端的認(rèn)證信息。通常在接收到服務(wù)器返回的401狀態(tài)碼后,客戶端將Authorization加入請(qǐng)求中
Host:http1.1規(guī)范中唯一一個(gè)必須包含在請(qǐng)求內(nèi)的首部字段,可為空
User-Agent:創(chuàng)建請(qǐng)求的瀏覽器名稱等信息
-
響應(yīng)首部
Location:提供重定向的資源地址
Server:服務(wù)器上安裝的http服務(wù)器應(yīng)程序信息
-
為Cookie服務(wù)的首部字段
Set-Cookie:開始狀態(tài)管理所使用的Cookie信息(響應(yīng)首部),管理服務(wù)器端設(shè)置的cookie信息,如expires過期時(shí)間,domain所屬域名和httponly等
Cookie:服務(wù)器端收到的Cookie信息(請(qǐng)求首部)
-
-
狀態(tài)碼
狀態(tài)碼用于描述服務(wù)器端返回的請(qǐng)求結(jié)果狀態(tài),是正常,錯(cuò)誤還是其他。
12.PNG200(ok):服務(wù)器正常處理了請(qǐng)求
304(Not Modified):資源未發(fā)生變動(dòng),一般瀏覽器會(huì)使用已經(jīng)緩存過的資源
401(UNauthorized):第一次返回表示需要認(rèn)證,第二次則是表示認(rèn)證失敗
403(Forbidden):請(qǐng)求資源的訪問被服務(wù)器拒絕
404(Not Found):服務(wù)器上不存在請(qǐng)求的資源
500(Internal Server Error):服務(wù)器內(nèi)部錯(cuò)誤
-
-
HTTP與Web
-
Web服務(wù)器
一般,在互聯(lián)網(wǎng)上域名通過DNS服務(wù)器域名解析后映射到IP地址再訪問目標(biāo)網(wǎng)站
由于虛擬主機(jī)的功能,在相同的IP地址下可以部署多個(gè)不同域名的Web站點(diǎn),因此在發(fā)送HTTP請(qǐng)求時(shí)必須在Host首部內(nèi)完善域名
-
通信數(shù)據(jù)的轉(zhuǎn)發(fā)
- 代理:扮演位于服務(wù)器與客戶端中間人的角色,它接受客戶端的請(qǐng)求轉(zhuǎn)發(fā)給服務(wù)器,同時(shí)也接受服務(wù)器的返回結(jié)果并轉(zhuǎn)發(fā)給客戶端
13.PNG緩存代理:預(yù)先將服務(wù)器上的資源副本緩存在代理服務(wù)器上,當(dāng)客戶端對(duì)這些已經(jīng)緩存過了的資源發(fā)出請(qǐng)求時(shí),代理不會(huì)對(duì)服務(wù)器發(fā)出請(qǐng)求,而是直接返回緩存的資源
- 網(wǎng)關(guān):接收客戶端發(fā)送過來的請(qǐng)求,并自行進(jìn)行處理,利用網(wǎng)關(guān)可以將http請(qǐng)求轉(zhuǎn)化為飛http請(qǐng)求,可以提高通信的安全性
14.PNG- 隧道:用于保持客戶端與服務(wù)器端通信連接的應(yīng)用程序,會(huì)使用SSL等加密手段進(jìn)行通信,用于保證客戶端與服務(wù)器之間通信的安全
15.PNG
-
-
HTTPS
-
HTTP的缺點(diǎn)
通信使用明文,可能會(huì)被竊聽
不會(huì)驗(yàn)證通信方的身份,可能遭遇偽裝
無法證明報(bào)文的完整性,可能遭到篡改
用SSL將通信的報(bào)文主體內(nèi)容進(jìn)行加密,使用SSL建立http的安全通信線路,SSL處于http與TCP通信之間,這樣的SSL與HTTP組合被稱為HTTPS
17.PNG使用第三方證書來驗(yàn)證通信雙方身份
18.PNGHTTPS由于存在SSL加密,必不可免的會(huì)使處理速度會(huì)變慢
-
-
Web構(gòu)建
html,css和控制DOM來改變html元素的JavaScript
-》html5 ,vuejs,angularjs等等
數(shù)據(jù)格式:xml,json
-
Web安全
-
Web攻擊技術(shù)
-
SQL注入
欺騙服務(wù)器執(zhí)行惡意的SQL命令
-
XSS(跨站腳本攻擊)
黑客在HTML頁面內(nèi)注入惡意腳本,當(dāng)其他用戶瀏覽該網(wǎng)頁時(shí),惡意腳本被執(zhí)行
會(huì)話劫持
-
CSRF(跨站請(qǐng)求偽造)
黑客在HTML頁面內(nèi)注入惡意腳本,當(dāng)其他用戶瀏覽該網(wǎng)頁時(shí),在不通知用戶的情況下對(duì)其他站點(diǎn)發(fā)送請(qǐng)求
-
點(diǎn)擊劫持
用一個(gè)透明的域覆蓋在網(wǎng)頁某個(gè)位置上,當(dāng)用戶點(diǎn)擊該位置時(shí),觸發(fā)腳本
DDoS(分布式拒絕服務(wù))
-
-
-
-
Q&A