天天看點

Http和Https詳解,以及get與post的差別

Http和Https的基本概念

Http:超文本傳輸協定(Http,HyperText Transfer Protocol)是網際網路上應用最為廣泛的一種網絡協定。設計Http最初的目的是為了提供一種釋出和接收HTML頁面的方法。它可以使浏覽器更加高效。Http協定是以明文方式發送資訊的,如果黑客截取了Web浏覽器和伺服器之間的傳輸封包,就可以直接獲得其中的資訊。

Https:是以安全為目标的Http通道,是Http的安全版。Https的安全基礎是SSL。SSL協定位于TCP/IP協定與各種應用層協定之間,為資料通訊提供安全支援。SSL協定可分為兩層:SSL記錄協定(SSL Record Protocol),它建立在可靠的傳輸協定(如TCP)之上,為高層協定提供資料封裝、壓縮、加密等基本功能的支援。SSL握手協定(SSL Handshake Protocol),它建立在SSL記錄協定之上,用于在實際的資料傳輸開始前,通訊雙方進行身份認證、協商加密算法、交換加密密鑰等。

常用的HTTP方法有哪些?

GET: 用于請求通路已經被URI(統一資源辨別符)識别的資源,可以通過URL傳參給伺服器

POST:用于傳輸資訊給伺服器,主要功能與GET方法類似,但一般推薦使用POST方式。

PUT: 傳輸檔案,封包主體中包含檔案内容,儲存到對應URI位置。

HEAD: 獲得封包首部,與GET方法類似,隻是不傳回封包主體,一般用于驗證URI是否有效。

DELETE:删除檔案,與PUT方法相反,删除對應URI位置的檔案。

OPTIONS:查詢相應URI支援的HTTP方法。

GET方法與POST方法的差別

差別一:

get重點在從伺服器上擷取資源,post重點在向伺服器發送資料;

差別二:

get傳輸資料是通過URL請求,以field(字段)= value的形式,置于URL後,并用"?"連接配接,多個請求資料間用"&"連接配接,如http://127.0.0.1/Test/login.action?name=admin&password=admin,這個過程使用者是可見的;

post傳輸資料通過Http的post機制,将字段與對應值封存在請求實體中發送給伺服器,這個過程對使用者是不可見的;

差別三:

Get傳輸的資料量小,因為受URL長度限制,但效率較高;

Post可以傳輸大量資料,是以上傳檔案時隻能用Post方式;

差別四:

get是不安全的,因為URL是可見的,可能會洩露私密資訊,如密碼等;

post較get安全性較高;

差別五:

get方式隻能支援ASCII字元,向伺服器傳的中文字元可能會亂碼。

post支援标準字元集,可以正确傳遞中文字元。

Http與Https的差別

1、https協定需要到CA申請證書,一般免費證書較少,因而需要一定費用。(原來網易官網是http,而網易郵箱是https。)

2、http是超文本傳輸協定,資訊是明文傳輸,https則是具有安全性的ssl加密傳輸協定。

3、http和https使用的是完全不同的連接配接方式,用的端口也不一樣,前者是80,後者是443。

4、http的連接配接很簡單,是無狀态的。Https協定是由SSL+Http協定建構的可進行加密傳輸、身份認證的網絡協定,比http協定安全。(無狀态的意思是其資料包的發送、傳輸和接收都是互相獨立的。無連接配接的意思是指通信雙方都不長久的維持對方的任何資訊。)

HTTP的缺點與HTTPS

1、通信使用明文不加密,内容可能被竊聽

2、不驗證通信方身份,可能遭到僞裝

3、無法驗證封包完整性,可能被篡改

Https的優點

1、使用Https協定可認證使用者和伺服器,確定資料發送到正确的客戶機和伺服器。

2、Https協定是由SSL+Http協定建構的可進行加密傳輸、身份認證的網絡協定,要比http協定安全,可防止資料在傳輸過程中不被竊取、修改,確定資料的完整性。

3、Https是現行架構下最安全的解決方案,雖然不是絕對安全,但它大幅增加了中間人攻擊的成本。

Https的缺點(對比優點)|

1、Https協定握手階段比較費時,會使頁面的加載時間延長近。

2、Https連接配接緩存不如Http高效,會增加資料開銷,甚至已有的安全措施也會是以而受到影響;

3、SSL證書通常需要綁定IP,不能在同一IP上綁定多個域名,IPv4資源不可能支撐這個消耗。

4、Https協定的加密範圍也比較有限。最關鍵的,SSL證書的信用鍊體系并不安全,特别是在某些國家可以控制CA根證書的情況下,中間人攻擊一樣可行。

Http和Https詳解,以及get與post的差別

繼續閱讀