HTTPS和HTTP的区别

HTTPS详解

1什么是 HTTPS?

HTTPS :基于安全套接字层的超文本传输协议,HTTPS HTTP 应用层的基础上使用安全套接字层作为子层。HTTPS = HTTP + SSL

2)使用HTTPS的原因:

超文本传输协议 (HTTP) 是一个用来通过互联网传输和接收信息的协议。 HTTP 使用请求 / 响应的过程,因此信息可在服务器间快速、轻松而且精确的进行传输。当你访问 Web 页面的时候你就是在使用 HTTP 协议,但 HTTP 是不安全的,可以轻松对窃听你跟 Web 服务器之间的数据传输。在很多情况下,客户和服务器之间传输的是敏感歇息,需要防止未经授权的访问

(3)HTTP HTTPS 的相同点

大多数情况下,HTTP HTTPS 是相同的,因为都是采用同一个基础的协议,作为 HTTP HTTPS 客户端——浏览器,设立一个连接到 Web 服务器指定的端口。当服务器接收到请求,它会返回一个状态码以及消息,这个回应可能是请求信息、或者指示某个错误发送的错误信息。系统使用统一资源定位器 URI 模式,因此资源可以被唯一指定。而 HTTPS HTTP 唯一不同的只是一个协议头(https)的说明,其他都是一样的。

HTTP HTTPS 的不同之处

HTTP URL http:// 开头,而 HTTPS URL https:// 开头

HTTP 是不安全的,而 HTTPS 是安全的

HTTP 标准端口是 80 ,而 HTTPS 的标准端口是 443

OSI 网络模型中,HTTP 工作于应用层,而 HTTPS 工作在传输层

HTTP 无需加密,而 HTTPS 对传输的数据进行加密

HTTP 无需证书,而 HTTPS 需要认证证书

(4)HTTPS 如何工作

使用 HTTPS 连接时,服务器要求有公钥和签名的证书。

当使用 https 连接,服务器响应初始连接,并提供它所支持的加密方法。作为回应,客户端选择一个连接方法,并且客户端和服务器端交换证书验证彼此身份。完成之后,在确保使用相同密钥的情况下传输加密信息,然后关闭连接。为了提供 https 连接支持,服务器必须有一个公钥证书,该证书包含经过证书机构认证的密钥信息,大部分证书都是通过第三方机构授权的,以保证证书是安全的。

换句话说,HTTPS HTTP 一样,只不过增加了 SSL

HTTP 包含如下动作:

浏览器打开一个 TCP 连接

浏览器发送 HTTP 请求到服务器端

服务器发送 HTTP 回应信息到浏览器

TCP 连接关闭

SSL 包含如下动作:

验证服务器端

允许客户端和服务器端选择加密算法和密码,确保双方都支持

验证客户端(可选)

使用公钥加密技术来生成共享加密数据

创建一个加密的 SSL 连接

基于该 SSL 连接传递 HTTP 请求

(5)什么时候该使用 HTTPS

银行网站、支付网关、购物网站、登录页、电子邮件

### HTTPSHTTP的主要区别及安全性对比 #### 安全性增强 HTTPS相较于HTTP最显著的特点是在原有基础上加入了SSL/TLS层用于加密传输,这使得通过HTTPS协议交换的数据得到了有效保护,防止了中间人攻击其他形式的信息泄露[^2]。 #### 数据保密性 由于采用了非对称加密技术会话密钥机制,在HTTPS中传输的内容即使被截获也无法轻易解读。当客户端首次发起请求时,服务端发送其公钥给客户端,之后二者共同决定一个临时的共享秘密即会话密钥用来加密后续交互过程中的所有消息[^4]。 #### 身份验证 为了确保通信双方的身份真实性,HTTPS依赖于由受信任机构签发的数字证书(CA证书),该证书包含了服务器的真实身份信息及其对应的公钥。浏览器接收到此证书后能够确认对方确实是预期的服务提供商而不是恶意伪装者[^1]。 #### 连接特性 - **HTTP**: 使用TCP/IP模型下的80号端口,默认情况下每次请求都是独立且无状态的; - **HTTPS**: 则运行在443端口之上,并且整个会话期间维持着一种有状态的关系直到结束为止。 #### 性能考量 尽管HTTPS提供了更高的安全保障,但也带来了额外的计算负担——主要是因为加解密操作所需的时间资源消耗更多。不过随着硬件性能的进步以及优化算法的应用,这种差距正在逐渐缩小。 ```python import ssl context = ssl.create_default_context() with socket.create_connection(('example.com', 443)) as sock: with context.wrap_socket(sock, server_hostname='example.com') as ssock: print(ssock.version()) # 打印使用的TLS版本 ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhwadezh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值