一、TCP三次握手四次揮手介紹
三次握手:客戶端發送請求給服務端,服務端收到請求後,給客戶端發送ack確認,客戶端收到後,給服務端發送確認請求包。
四次揮手:
關閉客戶端與服務端的鏈接:客戶端發送關閉請求,服務端收到後回覆ACK確認。
關閉服務端與客戶端的鏈接:服務端向客戶端發起關閉請求,客戶端回覆ACK確認。
二、網絡7層架構與TCP/IP四層模型前端
三、HTTP原理算法
Http是無狀態協議,客戶端與服務端創建的短鏈接服務端響應後就關閉了。默認80端口
1.地址解析;根據請求地址解析出協議名、主機名、端口、請求路徑,而後根據DNS解析出IP
2.將上述信息及參數封裝HTTP請求包,
3.封裝成TCP包並創建鏈接(三次握手)
4.發送請求命令
5.服務器響應
6.服務器關閉TCP鏈接,若瀏客服端Connection:keep-alive,TCP 鏈接在發送後將仍然保持打開狀態
四、HTTP狀態碼數據庫
400 Bad Request(錯誤請求)
401 Unauthorized(未受權)
402 Payment Required(須要付款)
403 Forbidden(禁止訪問)
404 Not Found(未找到)
405 Method Not Allowed(不容許使用該方法)
406 Not Acceptable(沒法接受)
407 Proxy Authentication Required(要求代理身份驗證)
408 Request Timeout(請求超時)
500 Internal Server Error(內部服務器錯誤)
501 Implemented(未實現)
502 Bad Gateway(網關錯誤)
503 Service Unavailable(服務不可用)
504 Gateway Timeout (網關超時)
505 HTTP Version Not Supported(HTTP 版本不受支持)
五、HTTPS原理後端
HTTPS是以安全爲目標的HTTP 通道加入 SSL 層,其所用的端口號是 443
1.
創建鏈接獲取證書:客戶端經過 TCP 和服務器創建鏈接,而且在握手中過程當中請求證書。即客戶端發出一個消息給服務器,這個消息裏面包含了本身可實現的算法列表和其它一些須要的消息,SSL的服務器端會迴應一個數據包,這裏面肯定了此次通訊所須要的算法,而後服務器向客戶端返回證書。(證書裏面包含了服務器信息:域名。申請證書的公司,公共祕鑰)。
2.證書驗證:Client 在收到服務器返回的證書後,判斷簽發這個證書的公共簽發機構,並使用這個機構的公共祕鑰確認簽名是否有效,客戶端還會確保證書中列出的域名就是它正在鏈接的域名。
3.數據加密和傳輸: 若是確認證書有效,那麼客服端生成對稱祕鑰並使用服務器的公共祕鑰進行加密。而後發送給服務器,服務器使用它的私鑰對它進行解密。
六、HTTP1.0與HTTP1.1的區別緩存
Http1.0問題:連接沒法複用,即不支持持久連接。每次鏈接都要三次握手和慢啓動(對網路實際容量進行試探,避免因爲發送了過量的數據而致使阻塞)。
線頭阻塞(Head of Line Blocking,HOLB, 請求隊列的第一個請求由於服務器正忙(或請求格式問題等其餘緣由),致使後面的請求被阻塞。
Http1.1 解決的1.0的問題後,經過header 裏Connection: keep-alive,請求管道化,增長緩存。
將來2.0的趨勢,多路複用,頭部字節壓縮傳輸。
七、CDN介紹安全
CDN內容分發系統,可以實時地根據網絡流量和各節點的鏈接、負載情況以及到用戶的距離和響應時間等綜合信息將用戶的請求從新導向離用戶最近的服務節點上。其目的是使用戶可就近取得所需內容,解決 Internet網絡擁擠的情況,提升用戶訪問網站的響應速度。
CND通常包含分發服務系統、負載均衡系統和管理系統。
八、Nginx 反向代理介紹服務器
使用代理服務器做用:能夠提供訪問速度(熱點和靜態內容緩存);防火牆做用(過濾不安全信息);經過代理訪問不能訪問的站點;
反向代理做用:能夠防止外網對內網服務器的惡性攻擊、緩存以減小服務器的壓力和訪問安全控制以外,還能夠進行負載均衡,將用戶請求分配給多個服務器
Nginx的功能:反向代理、動靜分離、負載均衡。
九、Nginx負載均衡策略網絡
輪詢:
權重:
ip_hash:
url_hash:
fair 響應時間短優先分配
least_conn 最少鏈接
十、Nginx經常使用配置架構
限流:Nginx按請求速率限速模塊使用的是漏桶算法。
limit_req_zone 用來限制單位時間內的請求數,即速率限制
limit_req_conn 用來限制同一時間鏈接數,即併發限制
十一、負載均衡軟件介紹併發
Nginx/LVS/HAProxy的基於Linux的開源免費的負載均衡軟件,
F5/Array 收費的,F5功能更強大,收費也貴
Web前端採用Nginx/HAProxy+Keepalived做負載均衡器;後端採用MySQL數據庫一主多從和讀寫分離,採用LVS+Keepalived的架構。
七層負載均衡與四層負載均衡的區別:
七層負載均衡:工做在應用層,還能夠支持四層負載均衡,基於URL等應用層信息的負責均衡,例子:Nginx、HAProxy、MySQL Proxy。七層應用負載,能夠動靜分離,使網絡更智能化。
四層負載均衡:工做在傳輸層,基於IP+PORT ,例子:LVS、F5。TCP的創建(三次握手)是客戶端與服務端直接創建的,負責均衡設備相似路由器功能,負責尋找最佳服務器,對報文中IP地址修改成後端服務器。