深入理解HTTPS工作原理

前言

近几年,互联网发生着翻天覆地的变化,尤其是我们一直习以为常的HTTP协议,在逐渐的被HTTPS协议所取代,在浏览器、搜索引擎、CA机构、大型互联网企业的共同促进下,互联网迎来了“HTTPS加密时代”,HTTPS将在未来的几年内全面取代HTTP成为传输协议的主流。

读完本文,希望你能明白:

  • HTTP通信存在什么问题
  • HTTPS如何改进HTTP存在那些问题
  • HTTPS工作原理是什么

想阅读更多优质文章请猛戳GitHub博客,一年五十篇优质文章等着你!

一、什么是HTTPS

HTTPS是在HTTP上建立SSL加密层,并对传输数据进行加密,是HTTP协议的安全版。现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。

HTTPS主要作用是:

(1)对数据进行加密,并建立一个信息安全通道,来保证传输过程中的数据安全;

(2)对网站服务器进行真实身份认证。

我们经常会在Web的登录页面和购物结算界面等使用HTTPS通信。使用HTTPS通信时,不再用http://,而是改用https://。另外,当浏览器访问HTTPS通信有效的Web网站时,浏览器的地址栏内会出现一个带锁的标记。对HTTPS的显示方式会因浏览器的不同而有所改变。

二、为什么需要HTTPS

在HTTP协议中有可能存在信息窃取或身份伪装等安全问题。使用HTTPS通信机制可以有效地防止这些问题,接下来,我们先来了解下 HTTP协议存在的哪些问题:

  • 通信使用明文(不加密),内容可能被窃听

由于HTTP本身不具备加密的功能,所以也无法做到对通信整体(使用HTTP协议通信的请求和响应的内容)进行加密。即,HTTP报文使用明文(指未经过加密的报文)方式发送

HTTP明文协议的缺陷是导致数据泄露、数据篡改、流量劫持、钓鱼攻击等安全问题的重要原因。HTTP协议无法加密数据,所有通信数据都在网络中明文“裸奔”。通过网络的嗅探设备及一些技术手段,就可还原HTTP报文内容。

  • 无法证明报文的完整性,所以可能遭篡改

所谓完整性是指信息的准确度。若无法证明其完整性,通常也就意味着无法判断信息是否准确。由于HTTP协议无法证明通信的报文完整性,因此,在请求或响应送出之后直到对方接收之前的这段时间内,即使请求或响应的内容遭到篡改,也没有办法获悉。 换句话说,没有任何办法确认,发出的请求/响应和接收到的请求/响应是前后相同的

  • 不验证通信方的身份,因此有可能遭遇伪装

HTTP协议中的请求和响应不会对通信方进行确认。在HTTP协议通信时,由于不存在确认通信方的处理步骤,任何人都可以发起请求。另外,服务器只要接收到请求,不管对方是谁都会返回一个响应(但也仅限于发送端的IP地址和端口号没有被Web服务器设定限制访问的前提下)

HTTP协议无法验证通信方身份,任何人都可以伪造虚假服务器欺骗用户,实现“钓鱼欺诈”,用户无法察觉。

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ConcurrentHashMap是一个线程安全的HashMap实现,它在多线程编程中被广泛使用。在JDK的不同版本中,ConcurrentHashMap的实现方式也有所不同。在JDK 8中,ConcurrentHashMap采用了数组+链表+红黑树的方式来实现。\[1\] 具体来说,ConcurrentHashMap内部使用了一个Segment数组,每个Segment都是一个独立的哈希表,它们之间相互独立,可以并发地进行操作。每个Segment内部使用了与HashMap类似的数组+链表+红黑树的数据结构来存储键值对。这样的设计可以提高并发性能,因为不同的线程可以同时操作不同的Segment,从而减少了锁的竞争。\[1\] 在具体的操作上,ConcurrentHashMap使用了CAS(Compare and Swap)和Synchronized来实现线程安全。CAS是一种无锁的原子操作,它可以在不使用锁的情况下进行并发更新。而Synchronized则用于对整个ConcurrentHashMap进行同步,保证多个线程之间的互斥访问。通过这两种机制的结合,ConcurrentHashMap实现了高效的并发访问和更新。\[1\] 总结起来,ConcurrentHashMap的底层工作原理是通过数组+链表+红黑树的数据结构和CAS、Synchronized的机制来实现线程安全和高效的并发操作。\[1\]\[2\] #### 引用[.reference_title] - *1* [ConcurrentHashMap工作原理分析(深入理解)](https://blog.csdn.net/baidu_36697353/article/details/99996569)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [ConcurrentHashMap扩容原理](https://blog.csdn.net/xpsallwell/article/details/88071038)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [大学专科实习第二个月——HashTable,ConcurrentHashMap底层实现原理](https://blog.csdn.net/weixin_44907128/article/details/112965160)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值