當前位置:
首頁 > 知識 > 網站的工作原理:網路開發新手

網站的工作原理:網路開發新手

如果您剛接觸Web開發,您認為自己知道網路的工作原理 - 至少在基本層面上。

...但是,當您嘗試解釋一個網站為什麼出現空白。 什麼是IP地址? 「客戶 - 服務」模型是如何工作的?

最近開發框架功能很強大。強大到讓我們這些新碼農忽視了網站工作的基本原理。

我確實是這樣, 沒什麼不好意思承認的:網路很複雜,只有當您開式編程時,您才意識到這些基礎知識有多重要。 (如果您想讓你的web app正常工作)

所以我寫了一個關於這些基礎知識的四部分的指南,這些基礎每個人都需要掌握,無論你是編程菜鳥還是只是對編程感興趣。

Part 1:網站工作原理

第2部分:Web應用程序的結構

第3部分:HTTP和REST

第4部分:客戶端 - 伺服器交互的代碼示例

一個基本的網頁搜索

看起來似乎很簡單,幕後卻隱藏著一大堆魔法。 讓我們來深入學習吧。

定義網路的部分

了解網路是非常麻煩的,因為有很多術語。不幸的是,有些術語對於理解這篇文章的其餘部分至關重要。

如果您想了解萬維網的秘密,以下是最重要的術語:

客戶端:在計算機上運行並連接到互聯網的應用程序,如Chrome或Firefox。其主要作用是進行用戶交互,並將其轉換為對另一台稱為Web伺服器的計算機的請求。雖然我們通常使用瀏覽器訪問網路,但您可以將整個計算機視為客戶端 - 伺服器模型的「客戶端」。每個客戶端計算機都有一個唯一的地址,稱為IP地址,其他計算機可以用來識別它。

伺服器:連接到互聯網且具有IP地址的機器。伺服器等待來自其他機器(例如客戶機)的請求並對其進行響應。不同於您的計算機(即客戶端),伺服器也具有IP地址並安裝運行特殊的伺服器軟體,確定如何響應來自瀏覽器的請求。 Web伺服器的主要功能是將網頁存儲,處理和傳送給客戶端。有許多類型的伺服器,包括Web伺服器,資料庫伺服器,文件伺服器,應用程序伺服器等。 (在這篇文章中,我們在談論Web伺服器。)

IP地址:互聯網協議地址。 TCP / IP網路上的設備(計算機,伺服器,印表機,路由器等)的數字標識符。互聯網上的每台計算機都有一個IP地址,用於識別和與其他計算機通信。 IP地址有四組數字,以小數點分隔(例如244.155.65.2)。這被稱為「邏輯地址」。為了在網路中定位設備,通過TCP / IP協議軟體將邏輯IP地址轉換為物理地址。這個物理地址(即MAC地址)內置在您的硬體中。

TCP / IP:傳輸控制協議/互聯網協議。最廣泛使用的通信協議。 「協議」是一些標準的規則。TCP / IP被用作通過網路傳輸數據的標準。

埠號:一個16位整數,用於標識伺服器上的特定埠,並始終與IP地址相關聯。它可以用來識別伺服器上可以轉發網路請求的特定進程。

HTTP:超文本傳輸協議。 Web瀏覽器和Web伺服器用於通過互聯網進行通信的協議。

URL:統一資源定位符。 URL識別特定的Web資源。一個簡單的例子是https://github.com/someone. URL指定協議(「https」),主機名(github.com)和文件名(某人的個人資料頁面)。用戶可以從域名為github.com的網路主機通過HTTP獲取該URL所標識的Web資源。(很繞口嗎?)

從代碼到網頁的旅程

好的,現在我們有了必要的定義,讓我們嘗試Github的搜索,看看從地址欄輸入一個網址到獲取到網頁經歷了什麼:

1)您在瀏覽器中輸入URL

2)瀏覽器解析URL中包含的信息。包括協議(「https」),域名(「github.com」)和資源(「/」)。 在這種情況下,「.com」之後沒有指示特定的資源,所以瀏覽器知道檢索主(索引)頁面

3)瀏覽器與ISP進行通信,對主機的Web伺服器的IP地址進行DNS查找www.github.com. DNS服務首先聯繫根伺服器, 查詢 https://www.github.com 頂級域伺服器的IP地址。 該地址被發送回您的DNS服務。 DNS服務與「.com」名稱伺服器進行另外的溝通,並請求 https://www.github.com. 的地址。

source:https://technet.microsoft.com/en-us/library/bb962069.aspx

4)一旦ISP收到目標伺服器的IP地址,它會將其發送到您的Web瀏覽器

5)您的瀏覽器從URL中獲取IP地址和給定的埠號(HTTP協議默認為埠80,HTTPS默認為埠443),並打開TCP套接字連接。 此時,您的Web瀏覽器和Web伺服器終於連接了。

來自客戶端的GET請求

7)Web伺服器接收請求並查找該HTML頁面。 如果頁面存在,則Web伺服器準備響應並將其發送回您的瀏覽器。 如果伺服器找不到請求的頁面,它將發送一個HTTP 404錯誤消息,代表「找不到頁面」。

服務端響應

8)您的Web瀏覽器將接收到HTML頁面,然後通過它從上到按下解析尋找列出的其他資源,如圖像,CSS文件,JavaScript文件等。

index.html 頁面

9)對於列出的每個資源,瀏覽器重複上述整個過程,向伺服器發送HTTP請求。

10)瀏覽器完成載入HTML頁面中列出的所有其他資源後,頁面將最終載入到瀏覽器窗口中,並且連接將被關閉

Github

穿越互聯網深淵

值得注意的一件事是當您提出信息請求時,如何傳輸信息。當您發出請求時,該信息被分解成許多稱為數據包的小塊。每個數據包都標有一個包括源和目標埠號的TCP報頭,以及包含源IP地址和目標IP地址作為身份標識的IP報頭。然後,數據包通過乙太網,WiFi或蜂窩網路傳輸,並允許在任何路由上經過多次跳轉,直到到達目的地。

(我們實際上並不關心數據包到達那裡 - 重要的是它們到達目的地安全無恙!)一旦數據包到達目的地,它們將被重新組合。

那麼所有的數據包怎麼知道如何到達目的地而不會迷路?

答案是TCP / IP。

TCP / IP是一個兩部分系統,作為互聯網的基本「控制系統」。IP代表互聯網協議;其作用是使用每個數據包上的IP頭(即IP地址)將數據包發送到其他計算機。傳輸控制協議(TCP)負責將消息或文件分解成較小的數據包,使用TCP頭將數據包路由到目的地計算機上的正確應用程序,如果丟包,則重新發送數據包;一旦到達另一端,重新組裝數據包。

繪製最後的圖片

等等 - 工作還沒有完成! 現在,您的瀏覽器具有構成網站(HTML,CSS,JavaScript,圖像等)的資源,必須通過幾個步驟將資源呈現為可讀的網頁。

您的瀏覽器有一個渲染引擎,負責顯示內容。 渲染引擎以小塊形式接收資源的內容。 然後有一個HTML解析演算法告訴瀏覽器如何解析資源。

一個DOM樹

構建DOM樹後,將分析樣式表以了解如何對每個節點進行樣式化。 使用此信息,瀏覽器遍歷DOM節點並計算每個節點的CSS樣式,位置,坐標等。

一旦瀏覽器具有DOM節點及其樣式,那麼最終就可以將頁面繪製到屏幕上了。 結果是:你在互聯網上看過的一切。

網路很複雜,但你剛剛完成了很多的工作

所以這就是網路。迷惑嗎? 我們都是,但是如果你已經讀到這裡,你已經完成了最艱難的部分。 我跳過了一些細節,以便在這裡向大家展示這個大圖; 但是如果你能記起上面列出事件的基本順序,填寫細節將是小菜一碟。

查看Part 2, 在那裡我們將講解一個基本的Web應用程序的結構)

譯者:眾里尋他千百度

譯文:http://www.zcfy.cc/article/4137

原文:https://medium.freecodecamp.org/how-the-web-works-a-primer-for-newcomers-to-web-development-or-anyone-really-b4584e63585c

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 JavaScript 的精彩文章:

IT 從業者的壓力究竟有多大?
在瀏覽器的多個tab頁中共享sessionStorage
Firefox 58 將增強防禦能力,保護用戶隱私
小程序內嵌網頁能力開放
Ajax 的全面總結

TAG:JavaScript |