一些常見的協議的解釋http和HTTPS,session和cookie


### HTTPHTTPS
HTTP協議傳輸的數據都是未加密的,HTTPS協議是由HTTP+SSL協議構建的可進行加密傳輸、身份認證的網絡協議,要比HTTP協議安全。
**HTTPSHTTP的區別**
- HTTPS協議需要到ca申請證書,一般免費證書較少,因而需要一定費用。
- HTTP是超文本傳輸協議,信息是明文傳輸,HTTPS則是具有安全性的SSL加密傳輸協議。
- HTTPHTTPS使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443
- HTTP的連接很簡單,是無狀態的;HTTPS協議是由HTTP+SSL協議構建的可進行加密傳輸、身份認證的網絡協議,比HTTP協議安全。
### CookieSession
- **Cookie/Cookies: **是指某些網站為了*辨別用戶身份**進行session跟蹤**儲存在用戶本地*終端上的數據(通常經過加密)。
- **Session**服務端為客戶端訪問所建立和維持的會話,通常會生成一個唯一的id,會話有一定的有效期。
由於HTTP是無狀態的,即服務器不知道用戶上一次做了什么,默認也無法識別用戶身份。
比較流行的做法是:
- 用戶訪問時服務端建立會話(Session
- 將會話idSession ID)隨響應返回,並保存在客戶端的Cookies
- 后續的訪問中,服務器通過辨識,客戶端請求時攜帶的Cookies內容來識別用戶
![用戶首次訪問服務器向客戶端設置Cookie](https://upload-images.jianshu.io/upload_images/7575721-ecc0f69142c1f0c2.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![后續訪問時攜帶Cookie](https://upload-images.jianshu.io/upload_images/7575721-80561012c8f03f2c.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

**CookieSession的區別**
- cookie是存在客戶端(瀏覽器)的進程內存中和客戶端所在的機器硬盤上
- cookie只能能夠存儲少量文本,大概4K大小
- cookie是不能在不同瀏覽器之間共享
- Session存在服務器端,存在網站進程的內存中
- Session在初次設置session的時候,會在session池中實例化一個session對象,以sessionid 的值作為key,同時會將keycookie的形式保存到客戶端的內存中
- Session的作用域只存在當前瀏覽器的會話中,當瀏覽器關閉以后就會將sessionid丟失,但是服務器的Session對象要20分鍾以后才會回收
### 授權與加密
常見的接口安全策略:
1. Session/Cookie機制: 即需要登錄,登錄后可訪問各個接口,最常用的一種策略,適用於內部接口。
2. 固定appid模式: 用戶注冊時會生成一個唯一的appid,用戶調用接口時需要攜帶appid,適用於公開接口,安全性較差。
3. 動態token模式: token即身份令牌,用戶訪問接口需要使用個人appid臨時申請一個tokentoken有一定有效期,適用於公開接口,安全性較appid模式好。
4. 開放協議: Basic Auth/ Oauth1.0 / Oauth2.0: 適用於開放接口。
5. 數字簽名: 將所有請求參數及參數值進行排列拼接,加上用戶私鑰,再進行Md5或其他加密生成一個請求的簽名(sign,請求是需要攜帶簽名,服務器收到請求后,

會對請求重新計算簽名並核實與請求所攜帶簽名是否一致。安全性較高,可以有效防止請求被篡改。適用於內部接口及微服務接口。
**常見的加密算法**
在接口數據傳輸過程中常對一些敏感數據(如密碼)進行Base64編碼或MD5加密,以增加安全性。
加密算法分為對稱式加密算法和非對稱式加密算法,對稱式加解密使用同一個秘鑰,非對稱式使用不同的秘鑰。
- 對稱式加密
- DES: 數據加密標准,速度較快,適用於加密大量數據的場合
- AES: 高級加密標准,速度快,安全級別高
- 非對稱式加密
- RSA: 是一個支持變長密鑰的公共密鑰算法, 分公鑰和私鑰,SSH協議使用該算法
- MD5: 最常用的一種加密方法,是一種摘要算法。

### 緩存
HTTP 緩存機制作是 web 性能優化的重要手段,當用戶第一次請求服務器資源時,服務器將資源緩存到客戶端本地,在一定時間內(緩存有效期內)當用戶再次向服務器請求同樣的資源時,

可以直接從緩存中讀取,而不用從服務器下載。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM