[HTTP協議] 基礎知識

1、什麼是Http協議無狀態協議?怎麼解決Http協議無狀態協議?

  • 無狀態協議對於事務處理沒有記憶能力。缺少狀態意味着如果後續處理需要前面的信息
  • 無狀態協議解決辦法: 通過1、Cookie ; 2、通過Session會話保存。

2、cookies機制和session機制的區別

  • cookies數據保存在客戶端,session數據保存在服務器端;
  • cookies可以減輕服務器壓力,但是不安全,容易進行cookies欺騙;
  • session較安全,但佔用服務器資源

3、Http協議由什麼組成?

請求報文包括三部分:

  • 請求行:包含請求方法,URI,HTTP版本協議
  • 請求首部字段
  • 請求內容實體

響應報文包含三部分:

  • 狀態行:包含HTTP版本,狀態碼,狀態碼原因短語
  • 響應首部字段
  • 響應內容實體

4、Http協議中有哪些請求方式?

  • GET:用於請求訪問已經被URI(統一資源標識符)識別的資源,可以通過URL傳參給服務器
  • POST:用於傳輸信息給服務器,主要功能與GET方法類似,但一般推薦使用POST方式
  • PUT:傳輸文件,報文主體中包含文件內容,保存到對應URI位置
  • HEAD:獲得報文首部,與GET方法類似,只是不返回報文主體,一般用於驗證URI是否有效
  • DELETE:刪除文件,與PUT方法相反,刪除對應URI位置的文件

5、get和post的區別?

  • GET請求在URL中傳送的參數是有長度限制的,而POST沒有。
  • 對參數的數據類型,GET只接受ASCII字符,而POST沒有限制。
  • GET比POST更不安全,因爲參數直接暴露在URL上,所以不能用來傳遞敏感信息。
  • GET產生一個TCP數據包;POST產生兩個TCP數據包
    長的說:
    對於GET方式的請求,瀏覽器會把http header和data一併發送出去,服務器響應200(返回數據);
    對於POST,瀏覽器先發送header,服務器響應100 continue,瀏覽器再發送data,服務器響應200 ok(返回數據)。

6、響應狀態碼

狀態碼分類

  • 1XX- 信息型,服務器收到請求,需要請求者繼續操作。
  • 2XX- 成功型,請求成功收到,理解並處理。
  • 3XX - 重定向,需要進一步的操作以完成請求。
  • 4XX - 客戶端錯誤,請求包含語法錯誤或無法完成請求。
  • 5XX - 服務器錯誤,服務器在處理請求的過程中發生了錯誤。

常見狀態碼

  • 200 OK - 客戶端請求成功
  • 301 - 資源(網頁等)被永久轉移到其它URL
  • 302 - 臨時跳轉
  • 400 Bad Request - 客戶端請求有語法錯誤,不能被服務器所理解
  • 401 Unauthorized - 請求未經授權,這個狀態代碼必須和WWW-Authenticate報頭域一起使用
  • 404 - 請求資源不存在,可能是輸入了錯誤的URL
  • 500 - 服務器內部發生了不可預期的錯誤
  • 503 Server Unavailable - 服務器當前不能處理客戶端的請求,一段時間後可能恢復正常。

7、http與https的區別?

總的來說: HTTPS=SSL+HTTP

  • https協議需要到ca申請證書,一般免費證書較少,因而需要一定費用。
  • http是超文本傳輸協議,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協議。
  • http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,後者是443。(這個只是默認端口不一樣,實際上端口是可以改的)
  • http的連接很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,比http協議安全。

8、Http與Https優缺點?

  • 通信使用明文不加密,內容可能被竊聽,也就是被抓包分析
  • 不驗證通信方身份,可能遭到僞裝
  • 無法驗證報文完整性,可能被篡改
  • Https就是Http加上加密處理(一般是SSL安全通信線路)+認證+完整性保護

9、HTTP優化方案

  • TCP複用:TCP連接複用是將多個客戶端的HTTP請求複用到一個服務器端TCP連接上,而HTTP複用則是一個客戶端的多個HTTP請求通過一個TCP連接進行處理。前者是負載均衡設備的獨特功能;而後者是HTTP 1.1協議所支持的新功能,目前被大多數瀏覽器所支持。
  • 內容緩存:將經常用到的內容進行緩存起來,那麼客戶端就可以直接在內存中獲取相應的數據了。
  • 壓縮:將文本數據進行壓縮,減少帶寬
  • SSL加速(SSL Acceleration):使用SSL協議對HTTP協議進行加密,在通道內加密並加速
  • TCP緩衝:通過採用TCP緩衝技術,可以提高服務器端響應時間和處理效率,減少由於通信鏈路問題給服務器造成的連接負擔。

10,SSL原理

       HTTPS 通過安全協議如SSL/TLS 來保證數據傳輸, SSL和TLS都是基於非對稱加密算法,而RSA算法是非對稱加密算法中的佼佼者。

       RSA的公鑰和私鑰是互相對應的。RSA會生成兩個密鑰,持有者可以把任何一個用於公鑰,另一個就是私鑰。顧名思義,私鑰會被嚴密保管,除了擁有者以外禁止其他角色接觸,如在一個網站/遠程服務商內,私鑰妥善存儲在服務器端。任何被公鑰加密的東西只能被私鑰解密,反過來任何被私鑰加密的東西也只能被公鑰解密

私鑰和密鑰疊加使用,從而達到雙方之間祕密通信,最終實現身份驗證和祕密通信

  • 私鑰加密公鑰解密,能證明“私鑰擁有者” 的唯一身份,這就是簽名。
  • 公鑰加密私鑰解密,確保發送的信息,只能被“私鑰擁有者” 接收,從而實現安全傳輸


 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章