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方法區別
- 數據存儲位置:Get方法放在URL中;Post方法放到body中
- 數據大小限制:瀏覽器對URL長度有限制
- 獲取變量方式:Get方法使用Request.QueryString獲取;Post方法使用Request.Form來獲取變量
- 安全性:用戶名和密碼等參數出如今URL上存在安全隱患
4.HTTP1.1和HTTP2.0的區別
- 多路複用:鏈接共享機制讓一個鏈接讓能夠有多個request請求,服務端經過request請求id區分後讓不一樣的服務端進行響應,讓本來的串行的請求-響應模式變爲並行,提升傳輸處理效率
- 二進制格式:讓本來基於文本格式的解析方法變爲二進制格式的解析方法,以此來提升解析報文的健壯性
- header壓縮:經過緩存頭部字段來減小傳輸大小和避免重複發送header字段問題
- 服務端推送:服務端尚未收到瀏覽器的請求,就把全部相關資源推送給瀏覽器,以此提升性能
長鏈接:同一個TCP鏈接能夠承載多個http請求和響應;而多路複用指的是同一個http鏈接能夠共享瀏覽器
4.Cookie和Session
無狀態:服務端對事務沒有處理能力,面對同一個瀏覽器的兩次請求只能處理但不會記憶(登陸問題)
聯繫:都是會話保持技術即對事務有處理能力而且Session依賴於Cookie
區別:Cookie存儲在瀏覽器中而Session存儲在服務端緩存
5.HTTPS協議工做流程
介紹:基於HTTP協議,經過SSL/TLS提供加密處理數據、驗證對方身份以及數據完整性保護
工做流程:a) 非對稱加密後的加密密鑰;b)對稱加密傳輸數據安全
- 創建TCP鏈接
- 瀏覽器發送http請求
- 服務端發送數字證書(公鑰)
- 瀏覽器驗證證書合法性
- 瀏覽器生成加密密鑰
- 瀏覽器使用證書加密「加密密鑰」以後發送給服務端
- 服務端使用本身的私鑰解密以後獲得「加密密鑰」
- 服務端將數據加密以後發送給瀏覽器
- 瀏覽器解密以後獲取響應數據
6.其餘
6-1.SSL協議中的握手協議
6-2.HTTPS協議的優缺點