http相關面試題,拿去吧

死侍

 

 httpscss

https是在http與tcp之間增添了一個加密/身份驗證層(SSL)html

 

http與https區別node

  1. http是明文傳輸信息,而https則是具備安全性的SSL加密傳輸,比http更安全
  2. http和https鏈接方式不一樣,端口也不同,http是80,https是443

 

http無狀態協議是什麼?怎麼解決nginx

無狀態協議是對於事務處理沒有記憶能力算法

使用Cookie來解決無狀態json

 

經常使用的HTTP方法跨域

  1. GET、POST
  2. PUT: 傳輸文件
  3. DELETE:刪除文件
  4. OPTIONS:查詢相應URI支持的HTTP方法

 

完整HTTP請求所經歷的7個步驟瀏覽器

  1. 創建TCP鏈接
  2. 瀏覽器向服務器發送請求行
  3. 瀏覽器發送請求頭
  4. 服務器應答
  5. 服務器發送應答頭
  6. 服務器向瀏覽器發送數據
  7. 服務器關閉TCP鏈接

 

http的keep-alive緩存

TCP鏈接在發送後將仍然保持打開狀態,瀏覽器能夠繼續經過相同的鏈接發送請求,節省了創建鏈接所需時間和網絡帶寬安全

 

Ajax請求過程

  1. 建立XMLHttpRequest對象
  2. 設置回調函數
  3. 與服務器創建連接,open()
  4. 向服務器發送數據,send()
  5. 在回調函數中判斷響應狀態並處理數據

 

常見HTTP狀態碼

200:請求成功

301:永久性重定向

302:臨時重定向

403:請求的對應資源禁止被訪問

404:服務器沒法找到對應資源

500:服務器內部錯誤

503:服務器正忙

 

網頁從輸入網址到加載完成的過程

  1. 瀏覽器輸入url
  2. 域名解析(DNS解析),解析獲取相應IP地址
  3. 瀏覽器向服務器發起並創建tcp鏈接
  4. 瀏覽器向服務器發送http請求
  5. 服務器接收請求,將數據發送瀏覽器
  6. 瀏覽器獲取文件,解析html源碼
  7. 生成Dom樹,解析css樣式,js交互,完成渲染

 

瀏覽器同源策略

同源策略是指"協議+域名+端口"三者相同

分爲兩種,DOM 同源策略,XMLHttpRequest 同源策略

 

跨域方式

  1. 經過jsonp跨域
  2. document.domain + iframe跨域
  3. location.hash + iframe
  4. window.name + iframe跨域
  5. postMessage跨域
  6. nginx代理跨域
  7. nodejs中間件代理跨域
  8. WebSocket協議跨域

 

網站性能優化

  1. 減小HTTP請求
  2. 利用瀏覽器緩存
  3. 減小DOM操做
  4. 首屏加載和按需加載
  5. 減小瀏覽器重排和重繪
  6. js和css文件合併壓縮
  7. CSS資源放頂部,JS資源放底部
  8. 圖片使用png格式

 

虛擬DOM

用js實現DOM樹,用diff算法對每一層比較,找出最小變動,而後改變實際DOM,達到性能優化的方案

 

瀏覽器重排和重繪

重排是DOM元素的幾何變化,DOM樹結構變化,渲染樹須要從新計算
重繪是當頁面中的元素樣式的改變並不影響它在文檔流中的位置,好比改變背景,顏色,字體等等,瀏覽器會根據元素的新屬性從新繪製,使元素呈現新的外觀

 

常見瀏覽器內核

IE瀏覽器:Trident內核

Chrome瀏覽器:早期Webkit內核,現爲Blink內核

Firefox瀏覽器:Gecko內核

Safari瀏覽器:Webkit內核

360瀏覽器:Trident + Webkit雙內核

QQ瀏覽器:Trident + Webkit雙內核

 

常見兼容性問題

  1. 1.   不一樣瀏覽器的默認margin、padding不一樣

解決方案:css裏增長通配符*{margin:0;padding:0}

  1. 2.   事件綁定不一樣

IE瀏覽器: dom.attachEvent()

其餘:dom.addEventListener()

  1. 3.   Ajax略有不一樣

IE瀏覽器:ActiveXObject對象

其餘:XMLHttpReuest對象

相關文章
相關標籤/搜索