HTTP協議面試複習

1.HTTP協議介紹

定義:超文本傳輸協議,用於將Web服務端的HTML響應到本地瀏覽器的協議
請求報文格式html

  • 請求行:請求方法 + URL + 協議/版本號
  • 請求頭部:瀏覽器告知給服務端的屬性信息
  • 空行
  • 請求主體:請求相關的數據信息(參數等)

響應報文格式後端

  • 響應行:協議/版本號 + 狀態碼 + 描述信息
  • 響應頭部:服務端告知瀏覽器的屬性信息
  • 空行
  • 響應主體:響應數據(html文件等)

2.常見狀態碼

  • 400:bad requst - 一般是請求語法問題
  • 403:forbidden - 認證受權未經過
  • 404:not found - 資源不存在
  • 500:Internal server error - 不可預期的錯誤
  • 502:gateway bad - 收到後端無效響應
  • 503:service unavaible - 沒法處理客戶端請求
  • 504:gateway timeout - 沒法收到後端響應
  • 499:認爲是不安全的鏈接,主動拒絕了客戶端的鏈接

3.GET和POST方法區別

  1. 數據存儲位置:Get方法放在URL中;Post方法放到body中
  2. 數據大小限制:瀏覽器對URL長度有限制
  3. 獲取變量方式:Get方法使用Request.QueryString獲取;Post方法使用Request.Form來獲取變量
  4. 安全性:用戶名和密碼等參數出如今URL上存在安全隱患

4.HTTP1.1和HTTP2.0的區別

  1. 多路複用:鏈接共享機制讓一個鏈接讓能夠有多個request請求,服務端經過request請求id區分後讓不一樣的服務端進行響應,讓本來的串行的請求-響應模式變爲並行,提升傳輸處理效率
  2. 二進制格式:讓本來基於文本格式的解析方法變爲二進制格式的解析方法,以此來提升解析報文的健壯性
  3. header壓縮:經過緩存頭部字段來減小傳輸大小和避免重複發送header字段問題
  4. 服務端推送:服務端尚未收到瀏覽器的請求,就把全部相關資源推送給瀏覽器,以此提升性能

長鏈接:同一個TCP鏈接能夠承載多個http請求和響應;而多路複用指的是同一個http鏈接能夠共享瀏覽器

4.Cookie和Session

無狀態:服務端對事務沒有處理能力,面對同一個瀏覽器的兩次請求只能處理但不會記憶(登陸問題)
聯繫:都是會話保持技術即對事務有處理能力而且Session依賴於Cookie
區別:Cookie存儲在瀏覽器中而Session存儲在服務端緩存

5.HTTPS協議工做流程

介紹:基於HTTP協議,經過SSL/TLS提供加密處理數據、驗證對方身份以及數據完整性保護
工做流程:a) 非對稱加密後的加密密鑰;b)對稱加密傳輸數據安全

  1. 創建TCP鏈接
  2. 瀏覽器發送http請求
  3. 服務端發送數字證書(公鑰)
  4. 瀏覽器驗證證書合法性
  5. 瀏覽器生成加密密鑰
  6. 瀏覽器使用證書加密「加密密鑰」以後發送給服務端
  7. 服務端使用本身的私鑰解密以後獲得「加密密鑰」
  8. 服務端將數據加密以後發送給瀏覽器
  9. 瀏覽器解密以後獲取響應數據

6.其餘

6-1.SSL協議中的握手協議

6-2.HTTPS協議的優缺點

相關文章
相關標籤/搜索