<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>運作原理 &#8211; 科技島-掌握科技新聞、科技職場最新資訊</title>
	<atom:link href="https://www.technice.com.tw/tag/%E9%81%8B%E4%BD%9C%E5%8E%9F%E7%90%86/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.technice.com.tw</link>
	<description>專注於科技新聞、科技職場、科技知識相關資訊，包含生成式AI、人工智慧、Web 3.0、區塊鏈、科技職缺百科、生物科技、軟體發展、雲端技術等豐富內容，適合熱衷科技及從事科技專業人事第一手資訊的平台。</description>
	<lastBuildDate>Wed, 28 Sep 2022 08:57:53 +0000</lastBuildDate>
	<language>zh-TW</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.4.2</generator>

<image>
	<url>https://www.technice.com.tw/wp-content/uploads/2022/12/cropped-wordpress_512x512-150x150.png</url>
	<title>運作原理 &#8211; 科技島-掌握科技新聞、科技職場最新資訊</title>
	<link>https://www.technice.com.tw</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">223945996</site>	<item>
		<title>身為工程師的你，也應該來了解一下瀏覽器輸入網址後，背後的運作的原理吧！</title>
		<link>https://www.technice.com.tw/experience/20611/</link>
					<comments>https://www.technice.com.tw/experience/20611/#respond</comments>
		
		<dc:creator><![CDATA[科編推薦]]></dc:creator>
		<pubDate>Wed, 28 Sep 2022 08:57:51 +0000</pubDate>
				<category><![CDATA[產業]]></category>
		<category><![CDATA[雲端]]></category>
		<category><![CDATA[工作甘苦談]]></category>
		<category><![CDATA[工程師]]></category>
		<category><![CDATA[瀏覽器]]></category>
		<category><![CDATA[科技業]]></category>
		<category><![CDATA[網址]]></category>
		<category><![CDATA[運作原理]]></category>
		<guid isPermaLink="false">https://www.technice.com.tw/?p=20611</guid>

					<description><![CDATA[<p><img width="1200" height="627" src="https://www.technice.com.tw/wp-content/uploads/2022/09/image-1-6.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="image 1 6" decoding="async" srcset="https://www.technice.com.tw/wp-content/uploads/2022/09/image-1-6.png 1200w, https://www.technice.com.tw/wp-content/uploads/2022/09/image-1-6-300x157.png 300w, https://www.technice.com.tw/wp-content/uploads/2022/09/image-1-6-1024x535.png 1024w, https://www.technice.com.tw/wp-content/uploads/2022/09/image-1-6-768x401.png 768w" sizes="(max-width: 1200px) 100vw, 1200px" title="身為工程師的你，也應該來了解一下瀏覽器輸入網址後，背後的運作的原理吧！ 1"></p>
<p>相信很多人在瀏覽器上輸入自己要的關鍵字、網址後，通常網站都會漂漂亮亮的呈現在你眼前，你在網站上所做的任何操作，也都很順利～但！你有想過網站畫面是怎麼出來的嗎？<content><!-- wp:image {"id":20622,"sizeSlug":"large","linkDestination":"none"} --></p>
<figure class="wp-block-image size-large"><img src="https://www.technice.com.tw/wp-content/uploads/2022/09/image-1-6-1024x535.png" alt="" class="wp-image-20622"/><figcaption>圖片來源：freepik</figcaption></figure>
<p><!-- /wp:image --></p>
<p><!-- wp:paragraph --></p>
<p>文／<a href="https://zx2515296964.medium.com/%E8%BA%AB%E7%82%BA%E5%B7%A5%E7%A8%8B%E5%B8%AB%E7%9A%84%E4%BD%A0-%E4%B9%9F%E6%87%89%E8%A9%B2%E4%BE%86%E4%BA%86%E8%A7%A3%E4%B8%80%E4%B8%8B%E7%80%8F%E8%A6%BD%E5%99%A8%E8%BC%B8%E5%85%A5%E7%B6%B2%E5%9D%80%E5%BE%8C-%E8%83%8C%E5%BE%8C%E7%9A%84%E9%81%8B%E4%BD%9C%E7%9A%84%E5%8E%9F%E7%90%86%E5%90%A7-6b9a25694cab">Gary</a></p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:paragraph --></p>
<p>相信很多人在瀏覽器上輸入自己要的關鍵字、網址後，通常網站都會漂漂亮亮的呈現在你眼前，你在網站上所做的任何操作，也都很順利～<br />但！你有想過網站畫面是怎麼出來的嗎？它如何傳封包的嗎？它是如何透過網址就找到我要的網站的呢？<br />詳細理解背後的原理，相信能對你在開發的路上更有幫助的！</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:image {"align":"center","id":20612,"sizeSlug":"full","linkDestination":"none"} --></p>
<figure class="wp-block-image aligncenter size-full"><img src="https://www.technice.com.tw/wp-content/uploads/2022/09/image-25.png" alt="" class="wp-image-20612"/></figure>
<p><!-- /wp:image --></p>
<p><!-- wp:paragraph --></p>
<p id="c90e">先了解一下幾個專有名詞，懂了名詞後就能了解上方這張圖的意思了</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:heading --></p>
<h2 id="35ab">DNS</h2>
<p><!-- /wp:heading --></p>
<p><!-- wp:paragraph --></p>
<p id="208e">網域名稱系統（英語：Domain Name System，縮寫：DNS）<br />DNS 是網際網路的電話簿。人們透過例如 nytimes.com 或 espn.com 等網域名稱線上存取資訊。將網域名稱轉換為 IP 位址，以便瀏覽器能夠載入網際網路資源。</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:paragraph --></p>
<p id="68d3">我們先來看看它背後真正運作的方式吧！</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:image {"align":"center","id":20613,"sizeSlug":"large","linkDestination":"none"} --></p>
<figure class="wp-block-image aligncenter size-large"><img src="https://www.technice.com.tw/wp-content/uploads/2022/09/1-26-1024x534.jpg" alt="" class="wp-image-20613"/><figcaption>DNS 解析的過程</figcaption></figure>
<p><!-- /wp:image --></p>
<p><!-- wp:paragraph --></p>
<p id="2216">Client 會透過幾個步驟查找目標網域的 IP，順序依序為：</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:list --></p>
<ul>
<li>檢查本地的 DNS 快取</li>
<li>檢查電腦中的&nbsp;<code>.host</code>&nbsp;檔</li>
<li>向 DNS 伺服器發送詢問</li>
</ul>
<p><!-- /wp:list --></p>
<p><!-- wp:paragraph --></p>
<p id="03b4">不太懂在講什麼嗎？沒關係</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:paragraph --></p>
<p id="bcd6">我們用最簡單的說法就是</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:paragraph --></p>
<p id="514a"><strong>「Client 會先進行 DNS 解析，從 URL 找到 IP 位置」</strong></p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:paragraph --></p>
<p id="1cd2">舉個實際的說法就是</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:paragraph --></p>
<p id="4f02"><strong>「我想吃台北101旁邊的麵店(URL)，但我不曉得它今天有沒有開，所以想打電話先問問看以免我白跑一趟，所以！我必須先找到麵店的電話號碼(IP)！我就詢問周遭的親朋好友有沒有吃過、知不知道麵店電話(DNS解析)，如果都不知道，我就去路上問其他人(DNS解析)，直到我問到電話號碼為止(IP)」<br /></strong><em>(此情境我們先撇除使用 Google Map或 Google 搜尋引擎 查找XDD)</em></p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:paragraph --></p>
<p id="60f5">所以上方整體的順序其實就是舉例中找麵店電話的邏輯，所以最終真正用意就是要找到<strong>&nbsp;IP address</strong>，才能進行後續&nbsp;<strong>TCP 的握手</strong>&nbsp;及<strong>&nbsp;HTTP Request</strong></p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:paragraph --></p>
<p id="ebf2">其中背後還有 DNS 負載均衡、DNS 污染 等，我們就先不討論，有興趣的可以在自行找找</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:heading --></p>
<h2 id="7c73">TCP</h2>
<p><!-- /wp:heading --></p>
<p><!-- wp:paragraph --></p>
<p id="8d0e">傳輸控制協定（英語：Transmission Control Protocol，縮寫：TCP）是一種連接導向的，TCP 為每個封包分配一個唯一的識別碼和一個序號，這些號碼能讓接收端識別封包的完整性，以及封包的順序。</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:paragraph --></p>
<p id="1cbe">我們來看看它背後真正運作的方式吧！</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:image {"align":"center","id":20614,"sizeSlug":"full","linkDestination":"none"} --></p>
<figure class="wp-block-image aligncenter size-full"><img src="https://www.technice.com.tw/wp-content/uploads/2022/09/2-9.png" alt="" class="wp-image-20614"/><figcaption>TCP 三次握手 及 四次揮手</figcaption></figure>
<p><!-- /wp:image --></p>
<p><!-- wp:paragraph --></p>
<p id="ed5d">由於 DNS 幫我們找到的 IP 後，我們就需要讓 IP 跟 Server 建起連結，相當於是溝通的橋樑，這樣才能做到讓 Client 與 Server 進行溝通、相互傳遞資料</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:paragraph --></p>
<p id="7d5c">舉個實際的說法就是<br /><code>Client</code>：XXX.XXX.XXX(IP) 你在嗎？有事找你～<br />對應上圖：你在嗎?(ACK)<br /><code>Server</code>：在喔，來吧<br />對應上圖：我在(SYN/ACK)<br /><code>Client</code>：來惹<br />對應上圖：那我準備要傳遞資料囉(ACK)</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:paragraph --></p>
<p id="3075">所經歷 TCP 握手後，我們已經建立好橋樑，Client/Server 端雙方皆已事先確認過無誤，就準備進入 HTTP Request 階段了</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:preformatted --></p>
<pre class="wp-block-preformatted">ACK/SYC 較深入，想瞭解更多可以查看
<a href="https://iter01.com/586318.html" target="_blank" rel="noreferrer noopener">關於 TCP 三次握手和四次揮手，滿分回答在此</a></pre>
<p><!-- /wp:preformatted --></p>
<p><!-- wp:image {"align":"center","id":20615,"sizeSlug":"full","linkDestination":"none"} --></p>
<figure class="wp-block-image aligncenter size-full"><img src="https://www.technice.com.tw/wp-content/uploads/2022/09/3-8.png" alt="" class="wp-image-20615"/></figure>
<p><!-- /wp:image --></p>
<p><!-- wp:heading {"level":3} --></p>
<h3 id="ecd5">HTTP Request</h3>
<p><!-- /wp:heading --></p>
<p><!-- wp:paragraph --></p>
<p id="7e80">這個名詞應該相當熟悉了</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:paragraph --></p>
<p id="3378">HTTP 全稱 Hypertext Transfer Protocol(超文本傳輸協議)，是由 Client 端發送 HTTP Request (請求)到 Server 端，然後Server端返回HTTP Response (回復)。</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:paragraph --></p>
<p id="5b0f">Client 端向 Server 端發送 HTTP 請求(GET, POST, PUT, DELETE)，請求Server 向 Client 傳送網站的副本</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:preformatted --></p>
<pre class="wp-block-preformatted">需注意！！<br>此階段主要是 Client 端發起請求 的過程而已，Server 端尚未接到請求哦</pre>
<p><!-- /wp:preformatted --></p>
<p><!-- wp:heading {"level":3} --></p>
<h3 id="8c71">Server Response(HTTP Response)</h3>
<p><!-- /wp:heading --></p>
<p><!-- wp:paragraph --></p>
<p id="e310">此階段才是 Server 端接到 Request 後，開始處理，將最終處理完的資訊回傳給 Client 端，此時就我們常說的「封包」，就是 HTML、 CSS、 JS、 image 等等</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:image {"align":"center","id":20616,"sizeSlug":"full","linkDestination":"none"} --></p>
<figure class="wp-block-image aligncenter size-full"><img src="https://www.technice.com.tw/wp-content/uploads/2022/09/4-7.png" alt="" class="wp-image-20616"/><figcaption>Network 封包</figcaption></figure>
<p><!-- /wp:image --></p>
<p><!-- wp:heading --></p>
<h2 id="a76e">瀏覽器端解析渲染頁面</h2>
<p><!-- /wp:heading --></p>
<p><!-- wp:paragraph --></p>
<p id="5073">這步驟主就是將取得的 封包，全部渲染在瀏覽器上，讓 User 可以輕鬆閱/操作畫面上的所有資訊</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:paragraph --></p>
<p id="4c52">處理的過程步驟就是</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:list {"ordered":true} --></p>
<ol>
<li>取的 HTML 後，會開始解析完最終會變成 DOM Tree</li>
<li>取的 CSS 後，解析完會變 CSSOM Tress</li>
<li>以上兩者結束會開始計算樣式該如何去套用到 HTML 上，並產生 Render Tree</li>
<li>版面配置 Layout 決定出每個元素在頁面上的位置</li>
<li>最後經過 Paint 將計算結果轉為實際的像素，繪製在畫面上</li>
</ol>
<p><!-- /wp:list --></p>
<p><!-- wp:paragraph --></p>
<p id="3b33">選染過程可參考此影片</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:embed {"url":"https://youtu.be/ILvF25ljaoM","type":"video","providerNameSlug":"youtube","responsive":true,"className":"wp-embed-aspect-4-3 wp-has-aspect-ratio"} --></p>
<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio">
<div class="wp-block-embed__wrapper">
https://youtu.be/ILvF25ljaoM
</div>
</figure>
<p><!-- /wp:embed --></p>
<p><!-- wp:paragraph --></p>
<p id="79fd">以上就是整個瀏覽器輸入網址後，背後所發生的過程<br />以前都沒注意過XDD</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:paragraph --></p>
<p id="9510">小弟以前是前端工程師，但現在是 QA 工程師<br />所以仍對前端保有興趣，也相信多理解背後的原理，會對當 QA 的我在測試方面更有概念，也能更能精準的找出問題，以便於提升產品的品質</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:paragraph --></p>
<p id="9d6a">參考來源:</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:list --></p>
<ul>
<li><a href="https://blog.wassim.dev/ever-wondered-what-happens-when-you-type-in-a-url-in-an-address-bar-in-a-browser" rel="noreferrer noopener" target="_blank">Ever wondered what happens when you type in a URL in an address bar in a browser?</a></li>
<li><a href="https://viboloveyou12.medium.com/%E5%89%8D%E7%AB%AF%E9%9D%A2%E8%A9%A6%E8%80%83%E5%8F%A4-%E7%80%8F%E8%A6%BD%E5%99%A8%E8%BC%B8%E5%85%A5url%E5%BE%8C%E5%88%B0%E5%BA%95%E7%99%BC%E7%94%9F%E4%BB%80%E9%BA%BC%E4%BA%8B%E5%91%A2-ddc186da4043">前端面試考古：瀏覽器輸入URL後到底發生什麼事呢？</a></li>
<li><a href="https://kknews.cc/zh-tw/news/jkrmrjy.html" rel="noreferrer noopener" target="_blank">Web開發常問面試題，在地址欄中輸入網址後發生了什麼？</a></li>
<li><a href="https://ithelp.ithome.com.tw/articles/10228442" rel="noreferrer noopener" target="_blank">30. [WEB] 從輸入網址列到渲染畫面，過程經歷了什麼事情？</a></li>
<li><a href="https://w3c.hexschool.com/blog/8d691e4f" rel="noreferrer noopener" target="_blank">[熱門面試題] 從輸入網址列到渲染畫面，過程經歷了什麼事？</a></li>
<li><a href="https://hulitw.medium.com/learning-tcp-ip-http-via-sending-letter-5d3299203660">從傳紙條輕鬆學習基本網路概念</a></li>
</ul>
<p><!-- /wp:list --></p>
<p><!-- wp:pullquote --></p>
<figure class="wp-block-pullquote">
<blockquote>
<p>本文由 <a href="https://zx2515296964.medium.com/">Gary</a> 授權轉載，<a href="https://zx2515296964.medium.com/%E8%BA%AB%E7%82%BA%E5%B7%A5%E7%A8%8B%E5%B8%AB%E7%9A%84%E4%BD%A0-%E4%B9%9F%E6%87%89%E8%A9%B2%E4%BE%86%E4%BA%86%E8%A7%A3%E4%B8%80%E4%B8%8B%E7%80%8F%E8%A6%BD%E5%99%A8%E8%BC%B8%E5%85%A5%E7%B6%B2%E5%9D%80%E5%BE%8C-%E8%83%8C%E5%BE%8C%E7%9A%84%E9%81%8B%E4%BD%9C%E7%9A%84%E5%8E%9F%E7%90%86%E5%90%A7-6b9a25694cab">原文連結</a></p>
</blockquote>
</figure>
<p><!-- /wp:pullquote --></content></p>
<p>這篇文章 <a rel="nofollow" href="https://www.technice.com.tw/experience/20611/">身為工程師的你，也應該來了解一下瀏覽器輸入網址後，背後的運作的原理吧！</a> 最早出現於 <a rel="nofollow" href="https://www.technice.com.tw">科技島-掌握科技新聞、科技職場最新資訊</a>。</p>
]]></description>
		
					<wfw:commentRss>https://www.technice.com.tw/experience/20611/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">20611</post-id>	</item>
	</channel>
</rss>
