HTTP和HTTPS的区别及HTTPS的工作原理

一、HTTP和HTTPS的区别

1、安全性

  • HTTP:HTTP是明文传输的,这意味着数据在传输过程中不加密,容易受到中间人攻击。敏感信息,如密码和信用卡号,如果通过HTTP传输,可能会被窃取。
  • HTTPS:HTTPS使用SSL(Secure Sockets Layer)或其继任者TLS(Transport Layer Security)来加密数据传输,使数据在传输过程中加密,更难被中间人攻击窃取。

2、URL

  • HTTP:HTTP的URL以http:/开头
  • HTTPS:HTTPSI的URL以https:/开头

3、证书

  • HTTP:HTTP不需要使用数字证书。
  • HTTPS:HTTPS:需要使用数字证书,这个证书由受信任的第三方机构(如CA,Certificate Authority)颁发,用于验证网站的身份。

4、性能

  • HTTP:由于不需要加密和解密数据,HTTP的性能通常比HTTPS更高。这在某些情况下可以HTTP成为更好的选择,尤其是对于不涉及敏感信息的静态内容传输。
  • HTTPS:HTTPS需要进行加密和解密操作,这会增加一些计算开销,但现代计算机和服务器通常能够很好地处理这种负担。

二、HTTPS的工作原理

  1. 建立连接

    • 客户端向服务器发起连接请求。
    • 服务器接受连接请求,并回复确认。
  2. 握手阶段(Handshake)

    • 客户端向服务器发送一个消息,其中包含了支持的加密算法、TLS版本等信息。
    • 服务器收到"客户端Hello"后,选择一个加密算法和TLS版本,并生成一个数字证书发送给客户端。证书包含了服务器的公钥以及其他相关信息
    • 客户端收到服务器的证书后,会验证其有效性,包括检查是否是由可信的证书颁发机构签发的、服务器的域名是否与证书中的域名匹配等。
    • 如果证书有效,客户端生成一个随机的会话密钥并使用服务器的公钥加密这个密钥,然后发送给服务器。
    • 服务器收到加密的会话密钥后,使用自己的私钥解密,得到会话密钥。
  3. 加密通信

    • 一旦握手完成,客户端和服务器都使用这个会话密钥来进行对称加密和解密通信中的数据。
    • 数据在传输过程中被加密,保证了数据的机密性。
  4. 数据传输

    • 客户端发送HTTP请求(如GET、POST请求)给服务器,请求的数据经过加密后发送。
    • 服务器接收到请求后,进行相应的处理,生成响应数据。
    • 服务器将响应数据加密后发送给客户端。
  5. 结束连接

    当通信结束时,可以选择断开连接或者保持连接以进行后续通信。

相关推荐
专吃海绵宝宝菠萝屋的派大星1 天前
spring Ai 开发的mcp-由sse改成Streamable HTTP
人工智能·spring·http
sdm0704271 天前
socket-udp
网络·网络协议·udp·线程
草莓熊Lotso1 天前
【Linux网络】从 0 到工业级:TCP 服务器多线程 / 线程池全实现 + 远程命令执行实战
linux·运维·服务器·网络·人工智能·网络协议·tcp/ip
成空的梦想1 天前
免费 vs 付费国密 SSL 怎么选?
服务器·网络·网络协议·http·https·ssl
丑八怪大丑1 天前
XML_Tomcat_HTTP
xml·http·tomcat
minji...1 天前
Linux 网络基础之传输层TCP(六)TCP报头格式,TCP可靠性,序号/确认序号,窗口大,标志位,初识三次握手四次挥手
linux·运维·服务器·网络·网络协议·tcp/ip·http
yezipi耶不耶1 天前
讲讲 RTMate (WebSocket as A Service)中的消息的发布订阅机制
websocket·网络协议·rust
深邃-1 天前
【Web安全】-SRC平台介绍:CNVD平台-事件型漏洞-通用型漏洞,教育SRC平台,漏洞盒子,补天漏洞平台,企业SRC平台,企业和公益SRC平台
网络协议·安全·web安全·网络安全·https·src·cnvd
落叶_Jim2 天前
2026年Nginx配置HTTPS全流程-从零到自动续期实战指南
运维·nginx·https
Arman_2 天前
02 rusty-cat 实战:MeowClient 配置、任务参数、进度回调与暂停恢复
http·https·rust·tokio·文件分片上传·文件分片下载