作為一名準前端開發工程師,必須要對http基礎知識有一定的瞭解,可是想學習HTTP相關的知識,發現國內只有兩本相關的圖書,《HTTP權威指南》和《圖解http》,所有的書但凡帶上權威指南,必將是聖經級別的圖書,我在學校圖書館借了一本,600多頁的磚頭書,由於基礎太過薄弱,根本讀不下去,於是轉向了《圖 ...
作為一名準前端開發工程師,必須要對http基礎知識有一定的瞭解,可是想學習HTTP相關的知識,發現國內只有兩本相關的圖書,《HTTP權威指南》和《圖解http》,所有的書但凡帶上權威指南,必將是聖經級別的圖書,我在學校圖書館借了一本,600多頁的磚頭書,由於基礎太過薄弱,根本讀不下去,於是轉向了《圖解HTTP》,是本書很薄,只有二百多頁,很適合我這樣的小白。推薦基礎比較薄弱的朋友先從《圖解HTTP》看起!廢話不多說,準備起飛! 幾乎每一位前端工程師在面試的時候都會被問道這樣一個問題,在瀏覽器地址欄輸入URL到顯示出整個頁面,經歷了什麼?這個問題並沒有一個統一的答案,最簡單的形容: 1.利用dns進行功能變數名稱解析,解析成電腦能夠識別的ip地址 。 2.進行tcp的三次握手 。 3.建立起tcp連接後,進行http請求 。 4.伺服器端相應http請求,瀏覽器得到html頁面 。 5.瀏覽器解析html頁面,發起html頁面內的資源請求 。 6.渲染得到的html頁面,呈獻給用戶。 如果覺得理解不了,可以先跳過,等看完全篇文章再回看這個問題,就容易理解很多。 首先要瞭解兩個概念,客戶端和伺服器,客戶端通俗理解就是用戶(比如你手機上的瀏覽器),請求資源的一方,而伺服器端就是存儲網站信息的主機(比如百度公司的伺服器),提供資源相應的一方。而http就是客戶端和伺服器之間進行交流的一個協議。電腦和網路設備之間進行通信,就必須使用雙方都能夠理解的信息進行交流,這種為了使雙方順利進行信息的通訊而制定的規範就是協議! 要想學習http,則還要簡單瞭解一下tcp/ip協議,tcp/ip協議是許多協議組成的集合的總稱,包括TCP, IP, HTTP, DNS,FTP,UDP,PPPoE,ICMP,SNMP,FDDI等協議,http是tcp/ip協議的一個子集,是tcp/ip協議族的一部分!由於tcp/ip協議族中有很多不同的協議,而這些協議所應用的領域又有很大的不同,所以,對不同領域的協議進行劃分就顯得很重要了,tcp/ip協議族將這些協議劃分為4層,分別是:應用層,傳輸層,網路層,數據鏈路層。不同的層次分工也各有不同。 應用層:應用層決定了向用戶提供應用服務時通信的活動,包含的協議包括HTTP, DNS(Domain Name System,功能變數名稱系統),FTP(File Transfer Protocol,文件傳輸協議)。 傳輸層:傳輸層對上層應用層,提供處於網路連接中的兩台電腦之間的數據傳輸。包括TCP(Transmission Control Protocol, 傳輸控制協議)和UDP( User Data Protocol, 用戶數據報協議)。 網路層(又稱:網路互聯層):網路層用來處理 在網路上流動的數據包。數據包是網路傳輸的最小數據單位,該層規定了通過怎樣的傳輸路線到達對方電腦,並把數據包傳給對方,當與對方電腦之間通過多台電腦或者網路設備進行傳輸時,網路層的作用就是在多條路中間選擇一條傳輸路線。網路層最主要的就是IP協議(Internet Protocol)。 數據鏈路層: 用來處理連接網路的硬體部分,包括控制操作系統,硬體的設備驅動,網卡,光纖等肉眼可見的部分,硬體範疇都屬於數據鏈路層。
