HTTPS的改进与提升

一、HTTPS(Hypertext Transfer Protocol Secure,安全超文本传输协议) 是一种通过计算机网络进行安全通信的传输协议。HTTPS 经由 HTTP进行通信,并利用SSL(Secure Socket Layer,安全套接层)/TLS(Transport Layer Security,传输层安全)来加密数据包,并提供对网站服务器的身份认证,保护交换数据的安全性、隐私性与完整性。


二、HTTPS 不同于HTTP 的默认端口及多出一个加密/身份验证层SSL/TLS(在 HTTP 与 TCP 层之间)。HTTP的默认端口为80,HTTPS的默认端口为443。


三、HTTPS 协议需要从 CA 申请证书,有免费证书也有付费证书。


四、HTTPS 优点:

1. 信任主机的问题。 采用 HTTPS 的 服务器 Server 必须从 CA 申请一个用于证明服务器用途类型的证书, 并且该证书只有用于对应的 Server 的时候,客户端才信任此服务器Server 。

2. 防止通信过程中数据的泄密和被窜改。

3. 防止中间人攻击。

4. 降低被劫持风险。

5. 无状态连接。HTTPS 默认采用无状态连接,每次请求都是独立的,这有利于实现负载均衡和提高系统性能。

6. SEO(Search Engine Optimization,搜索引擎优化)。搜索引擎对采用HTTPS协议的网站搜索结果会提升排名优先展示。


五、HTTP与HTTPS协议的连接过程:

1. 如果 URL 的协议是 HTTP,则客户端会打开一条到服务端端口 80(默认)的连接,并向其发送老的 HTTP 请求。 

2. 如果 URL 的协议是 HTTPS,则客户端会打开一条到服务端端口 443(默认)的连接,然后与服务端握手,以二进制格式与服务器交换一些 SSL/TLS 的安全参数,附上加密的 HTTP 请求。 所以,HTTPS 比 HTTP 多了一层与 SSL/TLS 的连接,这也就是客户端与服务端 SSL/TLS 握手的过程,整个过程主要完成以下工作:

1)客户端向服务端发出请求,发送如下信息:支持的协议版本,一个随机数,支持的加密方法。
2)服务端回应使用的协议版本,一个随机数,使用的加密方法,服务器证书。
3)客户端验证服务器证书,若证书真实有效,则取出服务端公钥,向服务端发送:一个用公钥加密的随机数(Pre-Master Key)。客户端通过拥有的3个随机数生成随后进行通信的会话密钥。
4)服务端解密从客户端接收的用公钥加密的第3个随机数,通过拥有的3个随机数生成会话密钥,将之前所有发送的数据做个摘要再加密一下供客户端校验,并回应可以进行通信。
 


微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。

我是程序员小迷(致力于C、C++、Java、Kotlin、Android、iOS、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

欢迎关注。助您在编程路上越走越好!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值