JavaShuo
欄目
標籤
前端須要瞭解的計算機網絡知識
時間 2019-11-24
標籤
前端
須要
瞭解
計算機網絡
知識
简体版
原文
原文鏈接
前端須要瞭解的計算機網絡知識
概述
七層網路協議
物理層 -> 數據鏈路層 -> 網絡層 -> 傳輸層 -> 會話層 -> 表示層 -> 應用層
http和tcp
http是應用層協議,tcp是傳輸層協議
常見的應用層協議還包括:telnet,ssh,smtp,pop,ssl/tls,mime 常見傳輸層協議還有:udp,sctp
Web和HTTP
HTTP概況
HTTP服務器並不保存關於客戶的任何信息,所以HTTP是一個無狀態協議(stateless protocol)
非持續鏈接和持續鏈接
採用非持續鏈接的http是每一個tcp最多容許傳輸一個對象
HTTP報文格式
HTTP請求報文
請求行=方法+sp+URL+sp+版本+cr+lf
GET /somedir/page.html HTTP/1.1
首部行=首部字段名+sp+值+cr+lf
Host:www.someschool.edu
Connection:close
User-agent:Mozilla/5.0
Accept-language:fr
空行=cr+lf
實體主體
HTTP響應報文
狀態行=版本+sp+狀態碼+sp+短語+cr+lf
HTTP/1.1 200 OK
首部行=首部字段名+sp+值+cr+lf
Connection:close
Date:Tue,09 Aug 2011 15:44:04 GMT
Server:Apache/2.2.3 (CentOS)
Last-Modified:Tue,09 Aug 2011 15:11:03 GMT
Content-Length:6821
Content-Type:text/html
空行=cr+lf
實體主體
http 狀態碼
101 websocket 雙向通訊
200 成功
204 沒有響應體
206 斷點續傳
301 永久重定向
302 臨時重定向
304 緩存 只能服務端設置
401 沒登陸沒有權限
403 登陸後沒有權限
404 沒有資源
405 請求方法不存在或不支持
502 負載均衡
發送請求的方式
瀏覽器 默認get請求
postman
命令行 mac curl
管線化
管線化不須要等待上一次請求獲得響應就能夠執行下一次請求,實現並行發送請求。只有GET和HEAD請求能夠進行管線化,而POST有所限制
請求方法 RestfulApi 根據不一樣的動做 作對應的處理
get 獲取資源
post 新增資源
put 上傳文件 修改(restful)
delete 刪除資源
options 跨域出現 複雜請求時出現 僅是get/post都是簡單請求 但加上自定義頭header就會變成複雜請求
用戶與服務器交互:cookie
cookie組件
在http響應報文中的一個cookie首部行
在http請求報文中的一個cookie首部行
在用戶端系統中保留有一個cookie文件,並由用戶的瀏覽器進行管理
位於Web站點的一個後端數據庫
cookie安全性
cookie 是存放在瀏覽器上的 服務器能夠設置 每次請求時都會帶上cookie
cookie 不安全 不能存放敏感信息
session 服務端 (基於cookie) 服務器的內存中,存到redis數據庫
Web緩存
Web緩存器(Web cache)也叫代理服務器(proxy server),它可以表明初始web服務器來知足http請求的網絡實體
http緩存
強制緩存
html
Cache-Control && Expires
對比緩存
前端
Last-Modified & If-Modified-Since
ETag & If-None-Match
Cache-Control - private 客戶端能夠緩存 - public 客戶端和代理服務器均可以緩存 - max-age=60 緩存內容將在60s後失效 - no-cache 須要使用對比緩存驗證數據,強制向源服務器再次驗證(沒有強制緩存) - no-store 全部內容都不會緩存,強制緩存和對比緩存都不會觸發(不緩存)
DNS
DNS是域名解析系統 Domain Name System
DNS工做原理
分佈式層次數據庫
根DNS服務器
TLD頂級域(DNS)服務器 com org edu
權威DNS服務器
本地DNS服務器與三個服務器的查詢關係 從請求主機向本地DNS服務器發出的查詢是遞歸查詢,從本地DNS服務器向其餘三種服務器查詢爲迭代查詢
DNS緩存
在一個請求鏈中,當DNS服務器緩存了一臺主機名/IP地址對,另外一個對相同主機名的查詢就可以提供所要求的IP地址,本地域名服務器通常會緩存頂級域名服務器的映射
DNS記錄和報文
資源記錄(Resource Record,RR)是一個包含了(Name,Value,Type,TTL)的四元組
DNS報文
12字節
標識符
標誌
問題數
回答RR數
權威RR數
附加RR數
查詢的名字和類型自竄
問題(問題的變量數)
對查詢的響應中的RR
回答(資源記錄的變量數)
權威服務器的記錄
權威(資源記錄的變量數)
可被使用的附加"有幫助"的信息
附加信息(資源記錄的變量數)
DDos攻擊
分佈式拒絕服務(DDos)帶寬洪泛攻擊
TCP鏈接
TCP報文段結構
源端口號+目的端口號
序號
確認號
首部長度+保留未用+URG+ACK+PSH+RST+SYN+FIN+接收窗口
因特網校驗和+緊急數據指針
選項
數據
TCP鏈接管理(三次握手)
第一步:客戶端的TCP首先向服務器端的TCP發送一個特殊的TCP報文段
第二步:一旦包含TCP SYN報文段的IP數據報到達服務器主機(假設它的確到達了),服務器會從該數據包中提取出TCP SYN報文段,爲該TCP鏈接分配TCP緩存和變量,並向該客戶TCP發送容許鏈接的報文段
第三步:在收到SYNACK報文段後,客戶也要給該鏈接分配緩存和變量
IP地址
IPv4 vs IPv6
IPv4數據報格式
版本(0-4)+首部長度(4-8)+服務類型(8-16)+數據報長度(16-31)
16比特標識(0-16)+標誌(16-19)+13比特片偏移(19-31)
壽命TTL(0-8)+上層協議(8-16)+首部檢驗和(16-31)
32比特源IP地址
32比特目的IP地址
選項(若是有的話)
數據
IPv6數據報格式
版本(0-4)+流量類型(4-12)+流標籤(12-31)
有效載荷長度(0-16)+下一個首部(16-24)+跳限制(24-31)
源地址(128比特)
目的地址(128比特)
數據
IPV4編址
子網:不跨越路由器的路由器接口和主機接口就造成一個子網
子網掩碼:IP地址爲某個子網分配的一個223.1.1.0/24的地址,這種/24的記法,稱爲子網掩碼(network mask),指示了32比特中的最左側24比特定義了子網地址
class
NetIDs
Blocks
A
10
1
B
172.16-172.31
16
C
192.168.0-192.168.255
256
CDN
CDN操做
當用戶主機中的一個瀏覽器指令檢索一個特定的視頻(由URL標識)時,CDN必須截獲該請求,以便可以肯定此時是混合用於該客戶的CDN服務器集羣以及將客戶的請求重定向到該集羣的某臺服務器
集羣選擇策略
任何CDN部署,其核心是集羣選擇策略(cluster selection strategy),即動態地將客戶定向到CDN中服務器集羣或數據中心的機制。
常見策略:
週期性實時測量;IP任播(客戶與CDN服務器匹配)
網絡安全
密碼學基礎
對稱密鑰密碼機制
對稱密鑰系統(symmetric key system) 雙方密鑰是相同的而且是祕密的
塊密碼 將要加密的報文處理成k比特的塊
DES(Data Encrypiton Standard) 數據加密標準
AES(Advanced Encryption Standard) 高級加密標準
公開密鑰系統
公開密鑰系統(public key system) 使用一對密鑰:一個密鑰爲雙方都知道,另外一個密鑰只有一方知道
RSA算法(Ron、Adi、Leonard三我的名)
大數分解和素性檢測
密碼散列函數
MD5散列算法
填充->添加->初始化累加器->循環
SHA-1(Security Hash Algorithm)
SSL
SSL(Secure Socket Layer) 安全套接字層
SSL握手
1)客戶發送它支持的密碼算法的列表,連通一個客戶的不重數
2)從該列表中服務器選擇一種對稱算法,一種公鑰算法和一種MAC算法,並把選擇以及證書和一個服務器不重數返回給客戶
3)客戶驗證該證書,提取服務器公鑰,生成一個前主密鑰(Pre-Master Secret),用服務器的公鑰加密該前主密鑰,並將加密的PMS發送給服務器
4)使用相同的密鑰導出函數,客戶和服務器獨立地從PMS和不重數中計算主密鑰(Master Secret),將該MS切片申城兩個密碼和兩個MAC密鑰
5)客戶發送全部握手報文的一個MAC
6)服務器發送全部握手報文的一個MAC
相關文章
1.
【長文】前端須要瞭解的計算機網絡知識
2.
前端須要瞭解的計算機網絡知識
3.
前端需要了解的計算機網絡知識, 這一篇就夠了!
4.
前端須要瞭解的5G網絡知識
5.
前端須要瞭解的RTMP知識
6.
前端須要瞭解的http知識
7.
前端必須懂的計算機網絡知識—(HTTP)
8.
前端必須懂的計算機網絡知識—(TCP)
9.
前端必須懂的計算機網絡知識—(IP,MAC和網絡模型)
10.
計算機網絡知識 計算機網絡知識
更多相關文章...
•
計算機網絡由哪些硬件設備組成?
-
TCP/IP教程
•
DTD - 來自網絡的實例
-
DTD 教程
•
三篇文章瞭解 TiDB 技術內幕 —— 說計算
•
漫談MySQL的鎖機制
相關標籤/搜索
計算機網絡
計算計網絡
前端知識點
前端冷知識
前端知識網站
計算機基礎知識
計算機網絡技術
計算機網絡02
計算機網絡實驗
計算機網絡原理
網站主機教程
Spring教程
NoSQL教程
計算
後端
算法
0
分享到微博
分享到微信
分享到QQ
每日一句
每一个你不满意的现在,都有一个你没有努力的曾经。
最新文章
1.
跳槽面試的幾個實用小技巧,不妨看看!
2.
Mac實用技巧 |如何使用Mac系統中自帶的預覽工具將圖片變成黑白色?
3.
Mac實用技巧 |如何使用Mac系統中自帶的預覽工具將圖片變成黑白色?
4.
如何使用Mac系統中自帶的預覽工具將圖片變成黑白色?
5.
Mac OS非兼容Windows軟件運行解決方案——「以VMware & Microsoft Access爲例「
6.
封裝 pyinstaller -F -i b.ico excel.py
7.
數據庫作業三ER圖待完善
8.
nvm安裝使用低版本node.js(非命令安裝)
9.
如何快速轉換圖片格式
10.
將表格內容分條轉換爲若干文檔
本站公眾號
歡迎關注本站公眾號,獲取更多信息
相關文章
1.
【長文】前端須要瞭解的計算機網絡知識
2.
前端須要瞭解的計算機網絡知識
3.
前端需要了解的計算機網絡知識, 這一篇就夠了!
4.
前端須要瞭解的5G網絡知識
5.
前端須要瞭解的RTMP知識
6.
前端須要瞭解的http知識
7.
前端必須懂的計算機網絡知識—(HTTP)
8.
前端必須懂的計算機網絡知識—(TCP)
9.
前端必須懂的計算機網絡知識—(IP,MAC和網絡模型)
10.
計算機網絡知識 計算機網絡知識
>>更多相關文章<<