如何利用谷歌云做自己的網(wǎng)站seo引擎優(yōu)化外包公司
MIME,全稱 “多用途互聯(lián)網(wǎng)郵件擴展類型”。
這名稱相當(dāng)學(xué)術(shù),用人話來說就是:
我們?yōu)g覽一個網(wǎng)頁的時候,之所以能看到 html 文件展示成網(wǎng)頁,圖片可以正常顯示,css 樣式能正常影響網(wǎng)頁效果,js 腳本可以正常運行,視頻可以正常播放,字體可以自定義,都跟 MIME 有著密不可分的關(guān)系。
當(dāng)我們引入 CSS 的時候,會寫一個 type=“text/css”
<link rel="stylesheet" type="text/css" href="./index.css" />
當(dāng)我們引入 JS 的時候,會寫一個 type=“text/javascript”
<script type="text/javascript" src="./index.js"></script>
這就是 MIME 類型。
對于瀏覽器來說,它從服務(wù)器拿到的資源,不管是 CSS 還是 JS 還是 HTML,都是一串字符串。
要讓 CSS、JS、HTML 各司其職,做好它該做的事情,就要用 MIME 來進(jìn)行判斷。
當(dāng)我們從服務(wù)器發(fā)起一個 HTTP 請求,那么 HTTP 返回的 Content-Type 屬性,就對應(yīng)了我們說到的這個 MIME 類型。
以上動圖,每個請求文件都有其對應(yīng)的 Content-Type 屬性和值,不同的文件值不一樣。
我們能夠看到一個個正常的網(wǎng)頁,就是通過 Content-Type 來決定請求的文件如何渲染,如何執(zhí)行,如何顯示的。
但是,在上一章【瀏覽器顯示一個網(wǎng)頁】中,我們并沒有看到返回 Contnet-Type 屬性,網(wǎng)頁也能正常顯示,這是為什么呢?
因為,經(jīng)過這么多年的發(fā)展,現(xiàn)代瀏覽器已經(jīng)具備較好的容錯能力,即使在某些情況下 MIME 類型缺失或錯誤,它們也能夠根據(jù)上下文推斷資源類型并正確解析。
如果我們明確設(shè)置資源的 Content-Type 值,比如上方截圖中,將 CSS 的返回 MIME 類型 Content-Type 的值設(shè)置為 text/html,則 CSS 就會用 HTML 類型來解析,從而導(dǎo)致字體并沒有變成紅色。
這就是 MIME 的作用,我們要用 Node.js 開發(fā)一個 Web 框架,MIME 是必須要了解的一個內(nèi)容。
不同的資源類型,要設(shè)置好正確的 MIME 類型。
那么接下來呢,我們再來講一講 HTTP,全稱:超文本傳輸協(xié)議。
如上圖,瀏覽器向服務(wù)器發(fā)起一個 HTTP 請求,服務(wù)端則給瀏覽器返回對應(yīng)的內(nèi)容。
HTTP 請求分為 4 部分,分別是請求行、請求頭、空行、請求體。
HTTP 響應(yīng)也鳳尾 4 部分,分別是響應(yīng)行、響應(yīng)頭、空行、響應(yīng)體。
其實 HTTP 請求和響應(yīng)是一樣的,只不過名詞不一樣而已。
如上圖所示,我們通過瀏覽器的調(diào)試面板,可以看到請求和響應(yīng)的具體內(nèi)容。
其中 (1) 處是請求行,(2) 處是請求頭,(3) 處是響應(yīng)頭。
那么標(biāo)頭緊挨著的 “負(fù)載”,就是請求體。
負(fù)載右邊 “預(yù)覽” 就是響應(yīng)體。
預(yù)覽右側(cè)的 “響應(yīng)” 也是響應(yīng)體,這是返回數(shù)據(jù)的原始格式,預(yù)覽只是可以更方便地查看和操作響應(yīng)體。
了解和認(rèn)識 MIME 和 HTTP 請求,是 Web 全棧開發(fā)的前提和基礎(chǔ),下一節(jié)內(nèi)容,我們繼續(xù)完善 Web 框架,最終用我們自己寫的 Web 框架,做一個前后分離的,個人博客項目。