国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

夯實基礎系列二:網絡知識總結

wfc_666 / 2949人閱讀

摘要:今天總結下與網絡相關的知識,不是那么詳細,但是包含了我認為重要的所有點。概要網絡知識我做了個方面的總結,包括協議,協議,協議,協議,協議,,攻擊,其他協議。跨域名如今被普遍用在網絡中,例如等。擁塞窗口的大小又取決于網絡的擁塞狀況。

前言

無論是 C/S 開發還是 B/S 開發,無論是前端開發還是后臺開發,網絡總是無法避免的,數據如何傳輸,如何保證正確性和可靠性,如何提高傳輸效率,如何解決會話管理問題,如何在網絡擁堵環境下采取措施。這些都是需要了解的。

今天總結下與網絡相關的知識,不是那么詳細,但是包含了我認為重要的所有點。如果想深入了解的可以參考《圖解HTTP[上野 宣]》、《圖解TCP/IP(第5版)[竹下隆史]》以及計算機網絡相關教材。

概要

網絡知識我做了 8 個方面的總結,包括DNS協議,HTTP協議,HTTPS協議,TCP協議,IP協議,TCP/IP,Web攻擊,其他協議。以下對這些內容做一些簡單的總結,同時我也有完整的思維導圖,博客上不方便展示,若有需要,聯系我。

細節 1. DNS 協議

作用:提供域名到IP地址之間的解析服務。或逆向從IP地址反查域名的服務

2. HTTP協議
2.1 特點

無狀態

使用URI定義互聯網資源

HTTP方法

GET:獲取資源

POST:傳輸實體主體

PUT:傳輸文件

HEAD:獲得報文首部

DELETE:刪除文件

OPTIONS:詢問支持的方法

TRACE:追蹤路徑

CONNECT:要求用隧道協議連接代理

持久連接節省通信量

管線化實現并行發送多個請求,而不需要一個接一個等響應

2.2 HTTP 報文

用于HTTP協議交互的信息稱為HTTP報文

請求報文

報文首部

請求行

請求首部字段

通用首部字段

實體首部字段

其他

空行

報文主體

響應報文

報文首部

狀態行

響應首部字段

通用首部字段

實體首部字段

其他

空行

報文主體

發送多種數據的多部分對象集合

MIME

multipart/form-data

內容協商

服務器驅動協商

客戶端驅動協商

透明協商

2.3 HTTP狀態碼

1XX:接收的請求正在處理

2XX:請求正常處理完畢

200 OK

204 NoContent

206 Partial Content

3XX:需要進行附加操作以完成請求

301 Moved Permanenetly

302 Found

303 See Other

304 Not Modified

307 Temporary Redirect

4XX:服務器無法處理請求

400 Bad Request

401 Unauthorized

403 Forbidden

404 Not Found

5XX:服務器處理請求出錯

500 Internal Server Error

503 Service Unavailable

2.4 HTTP1.1 和HTTP1.0的區別

可擴展性:定義Via頭域,增加版本號的支持

緩存

增加對緩存的重激活機制:使用ETag頭域描述一個資源

增加Cache-Control頭域支持可擴展的指令集

帶寬優化:允許請求資源的某部分,而不是整個資源

長連接

HTTP/1.0只支持瀏覽器與服務器保持短暫的連接,瀏覽器的每次請求都要建立一個新的連接。

而HTTP/1.1允許在一個TCP連接上可以傳送多個HTTP請求和響應。HTTP/1.1協議的持續連接有兩種方式,即非流水線方式和流水線方式。

非流水線方式的特點是,客戶在收到前一個響應后才能發出下一個請求;

流水線方式的特點是,客戶在收到HTTP的響應報文之前就能接著發送新的請求報文

2.5 Cookie與Session的區別

存取方式的不同

Cookie中只能保管ASCII字符串,假如需求存取Unicode字符或者二進制數據,需求先進行編碼。Cookie中也不能直接存取Java對象。若要存儲略微復雜的信息,運用Cookie是比較艱難的。

Session中能夠存取任何類型的數據,包括而不限于String、Integer、List、Map等。Session中也能夠直接保管Java Bean乃至任何Java類,對象等,運用起來十分便當。能夠把Session看做是一個Java容器類。

隱私策略的不同

Cookie存儲在客戶端閱讀器中,對客戶端是可見的,客戶端的一些程序可能會窺探、復制以至修正Cookie中的內容。

Session存儲在服務器上,對客戶端是透明的,不存在敏感信息泄露的風險。

有效期上的不同

Cookie的過期時間指定

Session依賴于名為JSESSIONID的Cookie,而Cookie JSESSIONID的過期時間默許為–1,只需關閉了瀏覽器該Session就會失效,因而Session不能完成信息永世有效的效果。

服務器壓力的不同

Cookie保管在客戶端,不占用服務器資源。假如并發閱讀的用戶十分多,Cookie是很好的選擇。關于Google、Baidu、Sina來說,Cookie或許是唯一的選擇。

Session是保管在服務器端的,每個用戶都會產生一個Session。假如并發訪問的用戶十分多,會產生十分多的Session,耗費大量的內存。因而像Google、Baidu、Sina這樣并發訪問量極高的網站,是不太可能運用Session來追蹤客戶會話的。

瀏覽器支持的不同

Cookie是需要客戶端瀏覽器支持的。

假如客戶端瀏覽器不支持Cookie,需要運用Session以及URL地址重寫。

跨域支持上的不同

Cookie支持跨域名訪問,例如將domain屬性設置為“.biaodianfu.com”,則以“.biaodianfu.com”為后綴的一切域名均能夠訪問該Cookie。跨域名Cookie如今被普遍用在網絡中,例如Google、Baidu、Sina等。

Session則不會支持跨域名訪問。Session僅在他所在的域名內有效。

2.6 電腦訪問網頁的過程

用到的協議:DNS、HTTP、OSPF、IP、ARP

過程描述

DNS把域名解析成對應的IP

發送一次請求,服務器返回一個永久重定向響應,這樣瀏覽器就知道要訪問的正確網址

發送請求html的請求,這個連接過程基于TCP/IP三次握手四次揮手的,建立連接

服務器返回一個html響應

瀏覽器根據渲染引擎解析返回的html響應,呈現內容

繼續發送內嵌在html文件其他資源的請求,比如css、js、圖片資源等

加載整個頁面

2.7 Ping

同網段

主機A要去Ping主機B, 主機A會封裝兩層報文,主機A先檢查自己MAC地址中是否有B的MAC地址,如果沒有就向外發送一個ARP廣播包

交換機收到這個ARP后,會檢查在交換機中是否包含B的MAC地址,如果有就直接返回給A;如果沒有就向所有端口發送ARP,該網段的主機的MAC如果與B的MAC地址不同就丟棄,如果主機B收到了該ARP就馬上返回相同格式的ARP

這時主機A已經有了B的MAC地址,就把B的MAC地址封裝到ICMP報中,向主機B發送一個回顯請求

主機B收到該報文后,知道是主機A的一個回顯請求,就會返回一個相同格式的報文。這樣就完成了同一個網段的Ping的過程

不同網段

主機A要去Ping一個不同網段的主機C,主機A會去找網關轉發

如果主機A不知道網關的MAC地址,就會發送一個ARP廣播一下,這樣就知道了網關的MAC地址

網關收到主機A的ICMP報文,根據上面的目的IP,會去查找路由表,找到一個出口指針,給主機C發送一個ICMP報文

如果網關不知道主機C的MAC地址,就會給網關內所有的主機發送一個ARP,從而找到主機C的MAC地址

主機C收到主機A的報文就會給主機A發送一個回顯請求。這樣就完成了不同網段的Ping的請求

2.8 路由器與交換機的區別

路由器包含了交換機的功能,交換機主要的作用是擴展接口

2.9 確認訪問用戶身份的認證

basic認證

digest認證

ssl客戶端認證

基于表單認證

認證多半為基于表單認證

session管理及cookie應用

2.10 websocket

全雙工通信

特點

推送功能:支持服務器向客戶端推送數據的推送功能

減少通信量:一直保持連接

HTTP連接建立后,需要完成一次握手動作

握手---請求:用到HTTP的upgrade字段告知服務器通信協議發生變化

握手---響應:對于之前的請求返回狀態碼101 switching protocols

成功握手確立WebSocket連接之后,通信不再使用HTTP的數據幀,而采用WebSocket獨立的數據幀

3. HTTPS協議
3.1 HTTP缺點

通信使用明文可能會被竊聽

解決方式

通信加密。SSL和TLS組合使用

內容加密

不驗證通信方身份就可能遭遇偽裝

解決方式:查明對手的證書

無法證明報文完整性,可能已遭篡改

數字簽名,MD5并不可靠,應用HTTPS

3.2 HTTP+加密+認證+完整性保護=HTTPS
3.3 HTTPS是身披SSL外殼的HTTP
3.4 HTTP采用混合加密機制
3.5 證明公開密鑰正確性的證書
3.6 SSL協議

通信慢

由于大量消耗CPU及內存等資源,導致處理速度變慢

SSL必須進行加密處理

4. TCP協議
4.1 傳輸層
4.2 作用

提供可靠的字節流服務

4.3 大塊數據分割成報文段(segment)
4.4 三次握手

發送端發帶SYN標志的數據包給對方。

接收端收到后,回傳一個帶有SYN/ACK標志的數據包以示傳達確認信息。

最后,發送端再回傳一個帶ACK標志的數據包,代表“握手”結束

握手某個階段中斷,TCP會以相同的順序發送相同的數據包
4.5 四次揮手

客戶端A發送一個FIN,用來關閉客戶A到服務器B的數據傳送。

服務器B收到這個FIN,它發回一個ACK,確認序號為收到的序號加1。和SYN一樣,一個FIN將占用一個序號。

服務器B關閉與客戶端A的連接,發送一個FIN給客戶端A。

客戶端A發回ACK報文確認,并將確認序號設置為收到序號加1。

4.6 流量控制

TCP接收端對發送端發送多少字節的數據進行控制,防止接收端處理不及而丟失數據

發送窗口的大小是受到接收窗口的控制的。

發送窗口必須根據接收端的大小及時調整發送窗口的大小,這個機制保證了每次TCP傳輸的數據量都是接收端可以及時處理的。

4.7 差錯控制

保證接收端接收的數據是完整未受損傷的,是可靠性的重要保證。

主要使用校驗和、確認、超時重傳這三個工具進行差錯控制。

4.8 擁塞控制

擁塞窗口

發送方的窗口大小是接收窗口與擁塞窗口中的較小值。

擁塞窗口的大小又取決于網絡的擁塞狀況。

擁塞策略

慢開始

擁塞避免

擁塞檢測

擁塞控制流程

由于剛開始不清楚網絡的擁塞情況,所以會首先采用慢開始算法,開始階段,窗口大小由1指數增大,直到窗口大小到達門限值。

窗口大小到達門限值后,就開始執行擁塞避免算法,之后窗口值按照線性規律增大,直到出現超時或者到達最大的窗口大小值。

這個時候,會開始執行擁塞檢測算法,也就是把門限值變為窗口大小的一半,之后繼續執行擁塞避免算法,窗口大小按照線性規律增大。

5. IP協議
5.1 網絡層
5.2 作用

把數據包傳送給對方

5.3 條件

IP地址和MAC地址

5.4 使用ARP協議憑借MAC地址進行通信
5.5 路由選擇
6. TCP/IP
6.1 協議族

IP、ICMP、DNS、TCP、FTP、HTTP、SNMP

6.2 分層管理

應用層

決定向用戶提供應用服務時通信的活動。FTP、HTTP、DNS

傳輸層

對上層應用層,提供處于網絡連接中的兩臺計算機之間的數據傳輸。TCP、UDP

網絡層

處理網絡上流動的數據包

規定了通過怎樣的路徑到達對方計算機,并把數據包傳送給對方

數據鏈路層

處理連接網絡的硬件部分

6.3 通信傳輸流

發送端層與層之間傳輸數據,每經過一層時必定會被打上一個該層所屬的首部信息

接收端在層與層傳輸數據時,每經過一層時會把對應的首部消去。

這種把數據信息包裝起來的做法稱為封裝

7. Web攻擊
7.1 因輸出值轉移不完全引發的安全漏洞

跨站腳本攻擊XSS

SQL注入攻擊

OS命令注入攻擊

HTTP首部注入攻擊

郵件首部注入攻擊

目錄遍歷攻擊

遠程文件包含漏洞

7.2 因設置或設計上的缺陷引發的安全漏洞

強制瀏覽

不正確的錯誤消息處理

開放重定向

7.3 因會話管理疏忽引發的安全漏洞

會話劫持

會話固定攻擊

跨站點請求偽造(CSRF)

7.4 其他安全漏洞

密碼破解

點擊劫持

dos攻擊

后門程序

8. 其他協議
8.1 IGMP協議

組管理協議,它幫助多播路由器創建以及更新與每一個路由接口相連的忠實成員列表(就是與該路由接口連接頻率較高)。

8.2 ICMP協議

差錯控制協議,彌補了IP協議沒有差錯糾正機制以及差錯報告的缺憾。

8.3 ARP協議

地址映射協議,可以把一個IP地址映射為MAC地址。

把IP數據報封裝成幀(以太網上對01串的分組定義)后才能通過物理網絡,這時就需要目的主機的MAC地址

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/77212.html

相關文章

  • 夯實基礎系列一:Java 基礎總結

    摘要:可實現單例模式代碼塊初始化靜態變量,只被執行一次內部類不能與外部類重名,只能訪問外部類靜態數據包括私有多分支選擇整型或字符類型變量或整數表達式開始支持。 前言 大學期間接觸 Java 的時間也不短了,不論學習還是實習,都讓我發覺基礎的重要性。互聯網發展太快了,各種框架各種技術更新迭代的速度非常快,可能你剛好掌握了一門技術的應用,它卻已經走在淘汰的邊緣了。 而學習新技術總要付出一定的時間...

    greatwhole 評論0 收藏0
  • 夯實JS系列--變量、作用域和內存問題

    摘要:作用域鏈的用途,是保證對執行環境有權訪問的變量和函數的有序訪問。全局執行環境始終是作用域鏈的最后一個對象。延長作用域鏈雖然執行環境的類型只有兩種。 最近在忙于寫一個react+node的全棧博客demo,沒有時間更新文章。但是還是覺得這樣一忙起來不更新是不應該的。正好在空閑上下班地鐵上都會再去細讀js原生知識。所以打算整理、總結、系統性的分享給大家。 基本類型和引用類型 在ECMASc...

    sihai 評論0 收藏0

發表評論

0條評論

wfc_666

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<