學習筆記 | 瀏覽器和伺服器是如何溝通的?

閱讀時間約 3 分鐘
身為一個非本科新手工程師,對於網路知識還是有許多疑惑之處,像是我在編輯器上寫了數十行的程式碼,那它們是怎麼透過終端機的指令被運行起來,讓我可以一邊開發一邊預覽結果呢?
開發階段告一段落,我把程式碼上傳到 Github,Github 回給我一串網址,我就有了一個實際的網頁作品,這又是什麼神奇魔法?
今天就來記錄一下,本地開發預覽以及瀏覽器和伺服器是如何溝通的!
首先,我們要了解瀏覽器和伺服器是如何溝通的,簡單來說,當我們想瀏覽特定網頁時,會輸入網址並按下 enter 發送,這時瀏覽器就會發送「網路請求」給伺服器,伺服器會回傳瀏覽器需要的資料,如HTML文本、圖片...等,瀏覽器再將這些資料組合、渲染到頁面上,就是我們平常看到的「網頁」!
(( 當然網路請求和資料回傳的過程並不是這麼簡單XD,先了解個雛型,細節之後再寫其他筆記
那麼在本地端開發時,我們想即時預覽,就需要從本機模擬一個網頁伺服器,以便達到上述所說,瀏覽器和伺服器溝通、傳遞資料的狀態,剛開始學切版的時候,沒有用太多套件,使用 vs code 裡的 Live server 幫忙運行即可,後來學到框架時,則改用 npm run dev/serve 的指令來開啟虛擬網頁伺服器
npm run dev 或 npm run serve 這些指令是由打包工具幫我們編寫好的,可以從專案內的 package.json 檔案中查看,這部分又是另一個坑,一樣之後再另外寫一篇筆記~
回到網頁伺服器上,執行 npm run dev 後,我的終端機小黑框跳出了兩個可以開啟瀏覽器的連結,
➜ Local:   http://localhost:5173/
➜ Network: http://192.XXX.XX.27:5003/
第一個是 Localhost,第二個是區網 IP 位置,兩者都可以開啟瀏覽器,預覽正在開發的頁面,但連線方式有些微不同,可以從下方圖片看一下兩者差異:
Localhost 會有個特別的 IP 「127.0.0.1」,這個 IP 指的就是自己的本機,在本機輸入這個 IP 或Localhost ,就會開啟環迴機制,讓我們可以在本機端上直接運行網路服務
區網 IP 則是從本機連線到當前所在的區網,再回傳到本機上,如果 Localhost 是一直待在房間裡, 區網 IP 就是出了房門去到客廳再回到房間裡的概念,假設在公司內,也可以透過區網 IP 和其他同事的電腦進行連線~
這就是開發階段,打包工具幫我們所做的網路連線模擬服務,讓我們能夠一邊開發一邊即時預覽結果啦!
那麼上傳到 Github ,成為一個可分享給其他人瀏覽的網頁呢,就是將我寫好的程式碼上傳到 Github 提供的網頁伺服器,由這個伺服器替我保存資料,同時它會提供一段像這樣的網址:https://iamamberhh.github.io/HH-STAY/#/
其中 iamamberhh.github.io 這段就是 Github 給我 iamamberhh 這個帳號使用的域名,使用者輸入完整的網址,便會回到一開始所說的瀏覽器和伺服器溝通、傳遞資料的過程,讓所有人都可以從自己的瀏覽器向該伺服器發出請求,並查看我的網頁
當然上傳到 Github 是因為我沒有自己的網頁伺服器,在公司進行開發的話,就會上傳到公司內部的網頁伺服器來進行保存,並且得到的網址也會是公司自己的域名,我聽前輩說這個上傳的過程也可以稱為「上版」唷!
我是Amber,前端學習中,歡迎交流討論🧸
即將進入廣告,捲動後可繼續閱讀
為什麼會看到廣告
avatar-img
22會員
22內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Amber hh的沙龍 的其他內容
時間真的過得好快,從2022五月的體驗營開始,到後來的切版直播班、JS直播班,將近一年的時間,現在都要從Vue直播班畢業了!
事情是這樣發生的,由於直播班第二週和第三週的作業內容很相似,於是我就把第二週的作業資料夾「複製」了一份,作為第三週的基底,並把第三週的作業內容完成後,準備上傳到一個新建的 week3 遠端 repository ...
9 月份剛從切版直播班畢業(可以看這一篇學習紀錄),我是毫不猶豫的就參加了下一階段的 JavaScript 直播班!當然是因為不滿足於作品只能是靜態的切版頁面,還想加入更多酷酷的效果,但總是會在使用套件上卡住,對 API 的概念也不足,接資料時二二六六的,不甘於被技術受限制的自己,當然要繼續修練😤
相信大家對於 sticky 這個效果不陌生,網頁上方的導覽列、文章側邊的相關閱讀等,諸多網頁都能看見它的身影,不過這篇不是 sticky 的使用教學,而是我自己的踩雷紀錄😅💣
相信不少人在學習寫程式的過程中,光是學習知識點就已經消耗大量腦細胞,如果跟我一樣選擇自學,本身美感和創意並不充裕到可以完成一份設計稿,也不像在學校裡有一起學習的夥伴,雖然有想做side project的念頭,也會完全不曉得該如何著手吧... 那麼我是怎麼完成的呢?
自學程式的過程中,你總是把transform、transition,甚至是translate搞混嗎!為了分辨「轉變」的三個關係字,並理解到底什麼時候要用哪個屬性才正確,這篇筆記誕生了!
時間真的過得好快,從2022五月的體驗營開始,到後來的切版直播班、JS直播班,將近一年的時間,現在都要從Vue直播班畢業了!
事情是這樣發生的,由於直播班第二週和第三週的作業內容很相似,於是我就把第二週的作業資料夾「複製」了一份,作為第三週的基底,並把第三週的作業內容完成後,準備上傳到一個新建的 week3 遠端 repository ...
9 月份剛從切版直播班畢業(可以看這一篇學習紀錄),我是毫不猶豫的就參加了下一階段的 JavaScript 直播班!當然是因為不滿足於作品只能是靜態的切版頁面,還想加入更多酷酷的效果,但總是會在使用套件上卡住,對 API 的概念也不足,接資料時二二六六的,不甘於被技術受限制的自己,當然要繼續修練😤
相信大家對於 sticky 這個效果不陌生,網頁上方的導覽列、文章側邊的相關閱讀等,諸多網頁都能看見它的身影,不過這篇不是 sticky 的使用教學,而是我自己的踩雷紀錄😅💣
相信不少人在學習寫程式的過程中,光是學習知識點就已經消耗大量腦細胞,如果跟我一樣選擇自學,本身美感和創意並不充裕到可以完成一份設計稿,也不像在學校裡有一起學習的夥伴,雖然有想做side project的念頭,也會完全不曉得該如何著手吧... 那麼我是怎麼完成的呢?
自學程式的過程中,你總是把transform、transition,甚至是translate搞混嗎!為了分辨「轉變」的三個關係字,並理解到底什麼時候要用哪個屬性才正確,這篇筆記誕生了!
你可能也想看
Google News 追蹤
Thumbnail
在這篇教學文章中,我們將展示如何使用 Node.js 建立一個簡單的伺服器,並解決常見的跨來源資源共享(CORS)問題,確保伺服器能夠接收並處理來自不同來源的資料。
Thumbnail
※ 原本狀態:伺服器渲染 這是 MVC 架構下的 request / response 示意圖,在這張圖呈現的架構裡,畫面和資料都由同一個架構處理。 伺服器渲染流程: 瀏覽器針對特定網址送出請求。 路由器解析請求後,轉接給對應的 controller。 controller 按照要求,透過
Thumbnail
※ 什麼是路由? 當我們說「路由」時,可能是在談論路由器(實體設備),也可能是在談論路由(選擇路徑的過程),或者是在談論路徑(資料封包的傳輸路徑)。 路由器 (Router):這是一種實體設備,負責將資料封包 (Packet) 從一個網路傳送到另一個網路。它的工作方式類似於交通指揮,確保資料封包
Thumbnail
這篇文章介紹了路由器 (Router) 在網絡硬體中的功能與運作概念,包括路由器的工作原理、運作流程和與其他硬體設備的區別。文章也提及了路由器運作的基本概念,例如路由表的建立方式和路由協定的基礎知識。
Thumbnail
當我們架好站、WebService測試完,接著就是測試區域網路連線啦~
Thumbnail
本章目的是為讀者提供有關如何設置JavaScript開發環境的知識,包括在瀏覽器、Node.js和各種編輯器和IDE中編寫和運行JavaScript的信息。此外,本章還介紹了如何架設本地開發伺服器以模擬實際的網頁環境。這些知識對於希望開發前端應用或後端服務的JavaScript開發者來說都是必要的。
你是否曾對那些支撐著我們日常生活、工作與娛樂的網路系統背後的運作原理感到好奇?想知道是什麼力量讓我們能夠順暢地上網購物、交友、瀏覽資訊嗎?就現在,就讓我們一起探索伺服器(Server)的秘密,從定義到種類,從現狀到趨勢,一篇文章帶你全面探索伺服器的世界!
Thumbnail
在這篇教學文章中,我們將展示如何使用 Node.js 建立一個簡單的伺服器,並解決常見的跨來源資源共享(CORS)問題,確保伺服器能夠接收並處理來自不同來源的資料。
Thumbnail
※ 原本狀態:伺服器渲染 這是 MVC 架構下的 request / response 示意圖,在這張圖呈現的架構裡,畫面和資料都由同一個架構處理。 伺服器渲染流程: 瀏覽器針對特定網址送出請求。 路由器解析請求後,轉接給對應的 controller。 controller 按照要求,透過
Thumbnail
※ 什麼是路由? 當我們說「路由」時,可能是在談論路由器(實體設備),也可能是在談論路由(選擇路徑的過程),或者是在談論路徑(資料封包的傳輸路徑)。 路由器 (Router):這是一種實體設備,負責將資料封包 (Packet) 從一個網路傳送到另一個網路。它的工作方式類似於交通指揮,確保資料封包
Thumbnail
這篇文章介紹了路由器 (Router) 在網絡硬體中的功能與運作概念,包括路由器的工作原理、運作流程和與其他硬體設備的區別。文章也提及了路由器運作的基本概念,例如路由表的建立方式和路由協定的基礎知識。
Thumbnail
當我們架好站、WebService測試完,接著就是測試區域網路連線啦~
Thumbnail
本章目的是為讀者提供有關如何設置JavaScript開發環境的知識,包括在瀏覽器、Node.js和各種編輯器和IDE中編寫和運行JavaScript的信息。此外,本章還介紹了如何架設本地開發伺服器以模擬實際的網頁環境。這些知識對於希望開發前端應用或後端服務的JavaScript開發者來說都是必要的。
你是否曾對那些支撐著我們日常生活、工作與娛樂的網路系統背後的運作原理感到好奇?想知道是什麼力量讓我們能夠順暢地上網購物、交友、瀏覽資訊嗎?就現在,就讓我們一起探索伺服器(Server)的秘密,從定義到種類,從現狀到趨勢,一篇文章帶你全面探索伺服器的世界!