序言html
這是計算機網絡基礎的最後一篇博文了,大致的從物理層到最上層的應用層作了一個大概的瞭解,花了也有快1個月的時間了,在本章結尾會給大家我學習該課程的視頻資料,我但願能幫到全部想學習想提升本身技術的同窗,我看到不少厲害的的博客的文章都被鎖了,我但願高手度可以幫助剛成長而且想努力提升技術的人。因此等我之後牛逼了,確定會幫助哪些迷茫的人,由於本身曾經迷茫過,走了不少彎路。算法
--WZY瀏覽器
1、回顧緩存
一、OSI體系結構分爲7層:物理層、鏈路層、網路層、傳輸層、會話層、表示層、應用層。服務器
二、TCP/IP的體系結構分爲4層:網絡接口層(物理層、鏈路層)、網際層(網絡層IP)、傳輸層(UDP/TCP)、應用層(會話層、表示層、應用層)網絡
三、原理體系結構:物理層、鏈路層、網絡層、傳輸層、應用層(會話層+表示層+應用層)學習
我寫文章的過程就是按照第三點這樣的排列順序,這三者的關係不要弄混淆了,其中的關係是spa
OSI七層協議體系結構:優勢:概念清楚,理論完整,缺點可是複雜而不實用.net
TCP/IP協議族四層,缺點:太簡單,但被普遍使用,計算機網絡
結合上面兩個的優缺點,就有了5層協議的原理體系結構,即簡潔又能把概念描述清楚。
前面4層每層的做用和功能是什麼?前面講解的很是清楚
2、應用層
一、概念
位於計算機網絡體系結構的最上層,前面四層作的全部事情就是爲了他服務,他也是設計和創建計算機網絡的最終目的,通俗的講,就是咱們開發的應用軟件,就處於這一層,好比,QQ,瀏覽器訪問網頁,等等你看獲得的應用軟件都是在這一層,可是這些軟件在運行的過程當中,也須要依靠一些特定的協議才能完成相應的功能,好比瀏覽器經過網址訪問網頁,其中是如何作到的,這就是咱們所要學習的東西。
二、應用層中的應用軟件分兩種。客戶/服務器和P2P體系結構
客戶/服務器(client/server)
這種類型,就是咱們很熟悉的客戶端,服務器模型,客戶端請求服務器,服務器響應客戶端這樣的一種方式進行「交流」
P2P
也稱爲對等體系結構。P2P至關於每一個人的電腦度能夠當服務器,也能夠當客戶端,不僅僅限制於只能客戶端訪問服務器,你本身的計算機能夠去訪問別人的計算機上的內容,別的一樣能夠訪問你計算機上的內容,這樣達到一種共享的狀態。
3、應用層協議的舉例。
一、DNS協議
Domain Name System 域名系統。也能夠叫作域名解析協議。在咱們在瀏覽器訪問網頁的時候,一般度是用咱們所熟悉的一連串有意義的英文字符標識,好比www.baidu.com、www.sohu.com等。 可是咱們學了前面的知識,計算機並非經過這些字符串去找到對應的計算機,而是經過32位的二進制,也就是咱們的IP地址來找。因此就有了DNS協議。他的做用就是將域名解析成對應的IP地址。由於讓咱們人去記那些IP地址,很難記得住,因此就想辦法讓IP地址轉變爲了如今的域名,在進行訪問的時候,只須要將域名解析爲對應的IP地址就好了,這個域名也頗有講究,其中分爲好多層域名,是獨一無二的。這裏不細講這個,只要咱們知道,域名經過DNS能找到對應的IP地址就好了
DNS協議是如何工做的呢?
一、經過域名訪問網頁
二、計算機會先將域名發送到一個解析域名的服務器上
2.1 在其服務器上有不少服務器,能解析各類各樣的域名,好比有專門解析.org的,解析.com的,解析.net的。等等,最主要的有一個根域名服務器,
2.2 域名解析(在服務器上查找IP地址)的過程有兩種算法,迭代查詢,遞歸查詢。通常是兩種查詢的結合
2.3 本機計算機找到其中一臺解析域名的服務器(多是.com),若是沒有找到對應的IP地址,那麼就會去找根域名服務器,根域名服務器知道全部的子服務器,因此他確定知道該域名所對應的IP地址在那個子服務器中,因此告訴第一次查詢的服務器要他去另外一臺服務器上找,找到了,就將其返回給計算機,之後在有另外一臺計算機也經過這個域名訪問,那麼第一臺服務器會有原來的域名IP地址的緩存,就不用去找根服務器了。
三、找到了,就能找到咱們要訪問的服務器了。
二、http協議
統一資源定位符URL。
URL:統一資源定位符,經過下面格式,能夠看出,就是用來定位咱們所須要資源在服務器上的位置。
格式:<協議>://<主機>:<端口>/<路徑>
協議:http
主機:域名/IP地址,原理度同樣,到頭來仍是會轉換爲IP地址,經過這個才能找到目標服務器
端口: 在傳輸層須要使用的,訪問目的主機的哪一個端口號。
路徑:精準的定位咱們所須要的資源位置、
日常會省略協議和端口號,由於這些度是默認的,在訪問主頁時,路徑也會省略。好比www.baidu.com這個默認進入百度的主頁 完整寫法 http://www.baidu.com:80/index.htm
超文本傳送協議HTTP。
做用:怎樣向服務器請求文檔、服務器怎麼把文檔傳送給瀏覽器,通俗點講,就是咱們想服務器訪問網頁資源時,服務器如何把網頁上的東西傳給咱們。
客戶端向服務器:請求報文 服務器向客戶端:響應報文
什麼意思呢?在經過URL訪問你服務器時,就會發送一個請求報文,告訴服務器須要哪些東西,服務器知道後,返回一個響應報文給客戶端,其中就會帶有一些網頁信息。就是經過這個來達到傳送網頁資源的目的,如今來具體看看,請求報文和響應報文的格式。
格式度同樣,內容不同,格式都市
請求行 響應行
請求頭部 響應體
請求數據 響應數據
請求報文格式
響應報文格式
經過訪問www.solu.com來看看咱們發送的請求報文和響應報文是什麼樣的
請求報文:
一、GET /http://www.sohu.com HTTP/1.1 請求行,只不過這裏被分開了,請求的方式 URL 版本
二、Host:主機名 www.solu.com
三、User-Agent:使用什麼代理服務器,這裏就是FireFox,也就是火狐
四、Accept:能接收的數據類型有哪些
五、Accept-Language:表示用戶但願優先想獲得的版本,一次排列下去,先是中文,再是英文
六、Accept-Encoding:通知服務端能夠發送的數據壓縮格式
七、Cookie:瀏覽器端的一個技術,在服務器上記錄用戶信息,可是也會在瀏覽器中保存一份。
八、Connection:鏈接的方式,有兩種,非持續鏈接和持續鏈接,非持續鏈接,一次請求/響應就對應一個TCP鏈接,接到了響應該鏈接就關閉,而後在發送請求就在創建TCP鏈接,持續鏈接就相反,這裏使用的是持續鏈接
九、Upgrade-Insecure-Requests:該指令用於讓瀏覽器自動升級請求從http到https,用於大量包含http資源的http網頁直接升級到https而不會報錯.簡潔的來說,就至關於在http和https之間起的一個過渡做用,這個能夠放一放,不懂不要緊。
以上2到9就是請求頭部,因爲通常請求報文度不會有請求數據的,因此在9後面就沒有內容了,通常若是想要發送數據過去度會經過在域名後面加?而後將數據創送過去
響應報文
這其中就來簡單看看響應行中的狀態碼把,響應體中內容太多,一會兒講解不清楚
狀態碼由三位數字組成,能夠分爲5大類共33種
1xx:表示通知信息的,好比請求收到了或正在進行處理
2xx:表示成功,也就是服務器接收到了你的請求,併成功處理了,通常最喜歡看到的就是200了
200:此次請求成功了。
3xx:表示重定向,服務器告訴瀏覽器要完成請求你必須採起進一步的行動,也就是去訪問另外一個網頁,
4xx:表示客戶的差錯,好比請求中有錯誤的語法或不能完成
404錯誤:就是找不到資源,就是你的URL寫的有錯誤,使定位不到正確的資源
5xx:服務器的差錯,如服務器失效,或者內部出現異常不能完成你的請求
500錯誤:就是服務器寫的代碼中有問題。
還有不少中狀態碼,有興趣的能夠百度查一查。
5、總結
到此爲止,就真正的結束了,可能http講的很簡單,可是http協議的內容實在是太多了,只能取重要的一點點講解一下,有興趣的同窗能夠本身去網上找找http的書籍觀看,推薦一本HTTP權威指南,我有電子版,資源鏈接會在下面,能夠本身去下載。。後續有時間,我也會花時間把這本書看完,而後寫成博文。
計算機網絡教程視頻資源連接 密碼:9wr2
HTTP權威指南 密碼:k07z
若是失效了,請加我qq:526745683 向我索取資源,註明博客園。謝謝