網(wǎng)站首頁 編程語言 正文
在 HTTP 的使用中,我們經(jīng)常會遇到兩種緩存:強(qiáng)制緩存和協(xié)商緩存
強(qiáng)制緩存
請求過一次不需要再次發(fā)送請求的緩存模式,在 HTTP 協(xié)議中稱為強(qiáng)制緩存
當(dāng)一個文件被強(qiáng)制緩存后,下一次請求會直接使用本地版本,而不會真的發(fā)出去;使用強(qiáng)制緩存時要注意,千萬別把需要動態(tài)更新的數(shù)據(jù)強(qiáng)制緩存。一個負(fù)面例子就是小明把獲取用戶信息數(shù)據(jù)的接口設(shè)置為強(qiáng)制緩存,導(dǎo)致用戶更新了自己的信息后,一直要等到強(qiáng)制緩存失效才能看到這次更新
協(xié)商緩存
第一次獲取接口數(shù)據(jù),會將數(shù)據(jù)緩存到本地,并存儲下數(shù)據(jù)的摘要;
第二次請求時,瀏覽器檢查到本地有緩存,將摘要發(fā)送給服務(wù)端。服務(wù)端會檢查服務(wù)端數(shù)據(jù)的摘要和瀏覽器發(fā)送來的是否一致;如果不一致,說明服務(wù)端數(shù)據(jù)發(fā)生了更新,服務(wù)端會回傳全部數(shù)據(jù);如果一致,說明數(shù)據(jù)沒有更新,服務(wù)端不需要回傳數(shù)據(jù)。
和強(qiáng)制緩存相比,協(xié)商緩存的代價是需要多發(fā)一次請求。
對稱加密
雙方加密解密都用相同密鑰的算法,我們稱為對稱加密算法
在實際的操作過程當(dāng)中,因為都是針對二進(jìn)制的操作,取補(bǔ)操作可以用異或操作來替代;另外,在其中的某些步驟還可以拿數(shù)據(jù)和密鑰進(jìn)行位計算,具體不同加密算法實現(xiàn)不同。
數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)
高級加密標(biāo)準(zhǔn)(AES)
使用對稱加密雙方都知道密鑰和算法,會造成很多問題:如果你是一個網(wǎng)站提供服務(wù)給用戶,你和用戶之間如果使用對稱加密,那么你需要為每個用戶定時生成一個不同的密鑰。這是因為,如果所有用戶都用一個密鑰,那么理論上一個用戶就可以看到其他用戶和網(wǎng)站之間的通信
非對稱加密
為了進(jìn)一步提升安全系數(shù),數(shù)學(xué)家還提出了非對稱加密。在非對稱加密中,加密和解密用的不是一個密鑰
在非對稱加密中,密鑰通常由提供服務(wù)的一方創(chuàng)建。每次創(chuàng)建是一對公私鑰對,然后提供者將公鑰給用戶,自己保留私鑰
常見非對稱加密算法
目前最常見且廣泛使用的非對稱加密算法是 RSA 算法。RSA 依賴的是大整數(shù)的分解,以及一些和素數(shù)相關(guān)的算法。目前沒有理論可以破譯 RSA 算法。總體來說,RSA 密鑰越長破解成本就越高,因此仍然被廣泛使用。其他的非對稱加密算法還有 DSS、EIGamal 等。
所以對稱、非對稱加密的區(qū)別是
對稱加密和解密可以用同一套密鑰。非對稱加密利用數(shù)學(xué)的方法生成公私鑰對,公鑰加密的數(shù)據(jù)私鑰可以解密,私鑰加密的數(shù)據(jù)公鑰可以解密。但是公鑰不能解密公鑰加密的數(shù)據(jù),私鑰也不能解密私鑰加密的數(shù)據(jù)。
原文鏈接:https://blog.csdn.net/qq_41780297/article/details/126561901
相關(guān)推薦
- 2022-09-25 用xshell和xftp,加docker部署前端項目
- 2022-08-30 C語言例題講解指針與數(shù)組_C 語言
- 2022-08-15 springboot實現(xiàn)動態(tài)數(shù)據(jù)源切換
- 2022-06-09 Qt中QPainter與坐標(biāo)的使用_C 語言
- 2022-12-06 靜態(tài)pod?創(chuàng)建使用示例詳解_docker
- 2022-11-09 Docker?安裝啟動Jenkins的方法(docker-compose)_docker
- 2022-12-23 Android入門之SubMenu的實現(xiàn)詳解_Android
- 2022-03-26 C語言實現(xiàn)字符串替換的示例代碼_C 語言
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支