PHPer面試指南-Web 篇

今朝發表於2019-02-16

本書的 GitHub 地址:https://github.com/todayqq/PH…

對於大公司,很少會有全棧工程師這個崗位,全棧是個花哨的詞,對於現在比較熱門的技術,不論是 Vue 還是 Laravel,只要智商不差,看著文件,都能寫出一個 CURD 來,但是這就叫全棧了嗎?

比如 Vue 中的 MVVM,其中 VM 檢視的原理是什麼?Laravel 為什麼要這麼設計?

會用這種技術棧,其實只是學到的只是皮毛,可以會用,但是必須要有自己精通擅長的一面,一定要做到人無我有,人有我優。


面試題

  • 談談對 Web 語義化的理解

語義化的含義就是用正確的標籤做正確的事情,語義化讓頁面的內容結構化,結構更清晰,便於對瀏覽器、搜尋引擎解析,利於 SEO,也有利於程式碼閱讀、便於維護。

  • 簡述 HTTP 協議的工作流程「重要」
  1. 地址解析;

在瀏覽器中輸入 URL,瀏覽器會從中分解出協議名、主機名、埠、物件路徑等部分

  1. 封裝 HTTP 請求資料包
  2. 瀏覽器獲取主機 IP 地址,建立 TCP 連結(TCP 的三次握手)
  3. TCP 連結建立後傳送 HTTP 請求

請求方式的格式為:統一資源識別符號(URL)、協議版本號,後邊是 MIME 資訊包括請求修飾符、客戶機資訊和可內容。

  1. 伺服器接到請求後,給予相應的響應資訊

其格式為一個狀態行,包括資訊的協議版本號、一個成功或錯誤的程式碼,後邊是 MIME 資訊包括伺服器資訊、實體資訊和可能的內容

  1. 伺服器斷開 TCP 連線
  • 為什麼使用 HTTPS?實現原理是什麼?

HTTPS(超文字傳輸安全協議)是一種通過計算機網路進行安全通訊的傳輸協議,提供對網站伺服器的身份認證,保護資料傳輸的完整性、安全性。

實現過程如下:

  1. 客戶端通過 TCP 和伺服器建立連線之後,第一次握手的時候請求證照,伺服器向客戶端返回證照
  2. 客戶端在收到服務端證照後,確認證照是否有效,生成對稱祕鑰並使用伺服器的公共祕鑰進行加密,然後傳送給伺服器。
  3. 伺服器使用它的私鑰對它進行解密,這樣兩臺計算機可以開始進行對稱加密進行通訊。
  • 寫出一個使用 flex 佈局,在 div 垂直居中的 css 程式碼
div {
    display: flex;
    justify-content: center;
    align-items: center;
}
  • 為什麼把 JavaScript 檔案放在 Html 底部
  1. 因為瀏覽器渲染 HTML 檔案是從上往下渲染的,JavaScript 放在 Html 頭部,會阻礙瀏覽器的渲染速度,增加使用者的等待時間
  2. 瀏覽器載入 JavaScript 指令碼之後會自動執行,如果放在頭部,此時的 Dom 樹還沒有載入完,很容易出 Bug
  • 談談對 JavaScript 閉包的理解

閉包是 JavaScript 函式的一種,宣告即執行,可以在函式內部呼叫外部變數。

  • 如何處理 Ajax 跨域問題
  1. 代理
  2. JsonP
  3. iframe 等等……

前端的知識比較多,一些比較基礎的問題,就不再整理了,比如給 Http 常見狀態碼,Html5 多了那些標籤,CSS 如何清除浮動等等。

如果大家有興趣,可以閱讀這些前端的常見面試題和資料。

擴充套件閱讀

相關文章