天天看點

直通網際網路大廠前端面試系列(三)——網絡基礎

傳送門

  • 直通網際網路大廠前端面試系列(零)——目錄總綱
  • 直通網際網路大廠前端面試系列(一)——HTML/CSS
  • 直通網際網路大廠前端面試系列(二)——JS / ES6+
  • 直通網際網路大廠前端面試系列(三)——網絡基礎
  • 直通網際網路大廠前端面試系列(四)——主流架構
  • 直通網際網路大廠前端面試系列(五)——算法

寫在前面

網絡傳輸是web開發的基礎,不管是前端還是後端,都要對其有足夠的了解。這部分的基礎知識非常重要,以緻于筆者會在文章中反複強調。這是一個一勞永逸,辛苦一下子,幸福一輩子的東西。是以希望同學們留出足夠的時間和精力把基礎知識夯實打牢。

長期如何學習

  • 死磕基礎,網絡部分的知識點不多,但是每個知識點的内容非常豐富。又因為其是web開發領域必備的技能,所有的知識點在面試的時候必考。是以筆者建議,要花足夠的時間和精力,把這部分死磕下來,雖然第一次很痛苦,後面就一勞永逸了。
  • 理論與實踐相應征,一般來說,大廠都有着一套比較成熟的網絡優化方案。是以需要你去動手優化的地方肯定不多。這時請留意兩個方面,第一是打包政策,第二是釋出政策。我們學過的網絡方面的知識都隐藏在這裡面,多留心,多注意,多問幾個為什麼。

短期如何突擊

這部分沒什麼好說的,如果有了第一次的紮實基礎,那麼隻需要簡單複習一下,重新刷刷題就好了。當然,前提是基礎要足夠紮實。知識點如下

  • 網絡協定
  • 網絡性能優化
  • 網絡安全

臨陣如何磨槍

當做到上面所說的基礎足夠紮實後,隻要過一遍下面的題,把一些遺忘的知識點補上就可以了。再強調一遍,網絡傳輸部分,基礎很重要!

什麼是TCP/IP協定?什麼是HTTP協定?
追問:
  • HTTP協定常見的狀态碼有哪些?參考資料
  • HTTP協定和HTTPS的差別?HTTP2了解嗎?
  • 什麼是三次握手?什麼是四次握手?
  • HTTP和websocket的差別?
  • 什麼是DNS?
請描述使用者在浏覽器裡輸入URL後回車,到頁面完全展示期間,都發生了什麼?
追問:
  • HTML資源加載順序是什麼?script标簽的defer和async屬性有什麼作用?
  • 請說出靜态資源請求的優化措施?是否用過“雪碧圖”和iconfont?
  • 如何利用浏覽器的緩存機制?
  • 什麼是SEO?如何優化?
  • SPA(single page application,單頁應用)和傳統網頁相比的優缺點是什麼?
跨域的定義是什麼?
追問:
  • 請說出常用的跨域解決方案
  • jsonp的原理是什麼?服務端如何配合?

什麼是XSS攻擊?如何預防?

追問:
  • 什麼是CSRF攻擊?如何預防?
  • 請介紹一下cookies
  • get和post的差別?還有其他method嗎?
  • 請說出2個以上post請求的資料格式
如何用Promise改造ajax?
追問:
  • Promise除了then,還有什麼方法?
  • 如何實作多個異步請求全部完成後,再執行某操作?
  • 是否用過async/await?