0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

HTTP和HTTPS的关键区别

马哥Linux运维 来源:马哥Linux运维 2025-03-25 15:34 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、HTTP 和 HTTPS 介绍

HTTP(HyperText Transfer Protocol)是一种无状态的通信协议,通常用于在客户端(例如浏览器)和服务器之间传输超文本(如 HTML 页面)。但这仅仅是一个单向通信协议,数据传输过程中并未加密,所以它比较容易被中间人攻击。无状态,即不能保存每次提交的信息,如果用户发来一个新的请求,服务器无法知道它是否与上次请求有关联。

a3d2aea6-0718-11f0-9310-92fbcf53809c.png

HTTPS(HyperText Transfer Protocol Secure),则是在 HTTP 的基础上增加了加密层,使用 SSL/TLS 协议来保护数据的传输。可以理解为 HTTP 的“高级版”,带有加密的护航,让数据在传输过程中更安全。

特性 HTTP HTTPS
安全性 无加密,易受攻击 加密传输,安全性高
端口 默认端口为 80 默认端口为 443
性能 较快(没有加密负担) 较慢(加密解密有一定开销)
证书 不需要证书 需要 SSL/TLS 证书
浏览器表现 没有“安全”标记 显示锁形标志,用户感到安全

二、互联网消息如何传递

在互联网中,信息传递就像是一场复杂的邮递过程,消息需要通过一系列的“邮局”(即路由器),逐步从发送方传递到接收方。为了让这个过程更具逻辑性,我们可以将其比作寄送包裹的过程。

1、互联网通信的路径

1.访问某个网站

访问网站www.example.com。这个网址在互联网上并不是唯一的地址,它只是一个更易于记忆的字符串。真正定位到网站的地址,必须通过它的 IP 地址。这就好比你想找一个朋友的住址,但只知道他的名字,你需要通过电话簿(类似 DNS 解析)来查找他具体的住址(IP 地址)。

2.浏览器发送请求

在浏览器中输入网址后,浏览器会发起一个请求,这个请求会包含想要访问的信息。例如,HTTP 请求头中可能包含要访问的页面路径、浏览器类型、语言等信息。就像向邮局递交一个包裹,包裹里带着想要发送的内容(即请求信息)。

3.DNS 解析

由于 IP 地址很不好记忆,所以 DNS(域名系统)起到了将易记的域名(如www.example.com)转换为计算机能够理解的 IP 地址(如 192.168.1.1)的作用。这是通过向 DNS 服务器查询来实现的。

4.路由器的作用

拿到正确的 IP 地址后,消息会通过一系列路由器(路由器就像邮递员一样,负责在各个“邮局”之间传递包裹)逐步转发到目标服务器。每个路由器根据接收到的包裹信息,决定将包裹转发给哪个下一个路由器或最终目标。这些路由器会通过 MAC 地址来标识彼此,就像每个邮局都有一个地址和“邮递员”一样。

a3f14140-0718-11f0-9310-92fbcf53809c.png

在这个过程中,MAC 地址是每台网络设备(如路由器、计算机等)唯一标识的地址。MAC 地址常常在局域网内起作用,而在互联网上,数据包会依赖 IP 地址进行转发。

a400f37e-0718-11f0-9310-92fbcf53809c.png

例如,当你的包裹从一个路由器(网络节点)到达下一个节点时,包裹的 "收件人地址"(即 MAC 地址)会发生变化,每经过一个路由器,包裹的封面上的 “地址” 会更新为当前路由器的 MAC 地址,直到最终到达目标服务器。

a429f63e-0718-11f0-9310-92fbcf53809c.png

5.目标服务器响应请求

当数据包最终到达目标服务器时,服务器会处理你的请求(例如返回一个网页、图片或文件)。服务器根据请求的信息,选择正确的数据进行返回。就像邮局在接收到包裹后,将其交给收件人。

a43d1b56-0718-11f0-9310-92fbcf53809c.png

6.响应回传

一旦目标服务器生成了响应,它会通过与请求时相同的路径,逆向发送回给浏览器。由于路由器和中间设备的作用,数据包在路由过程中仍然会更新其 MAC 地址和其它信息,但最终会正确到达浏览器,呈现出网页内容。

2、IP 地址和 MAC 地址的作用

1.IP 地址

是每个网络主机的唯一地址,主要用于寻址,让数据包能够找到目的地。你可以把 IP 地址看作“邮寄地址”,帮助路由器知道数据应该发往哪里。

2.MAC 地址

是硬件设备(如网卡)的一种物理地址,它在局域网内用于设备间的通信。可以理解为设备的“身份证”,每个设备都有一个独特的 MAC 地址。

3.DNS 解析

人们使用域名而不是 IP 地址,主要是因为域名更容易记忆。但计算机只能通过 IP 地址找到目标服务器,因此需要使用 DNS(域名解析系统)将域名转换成 IP 地址。

三、端口号

网卡中具有许多和网络通信的软件,数据帧到达网卡后,根据端口号来区别不同的软件或进程,端口后是用来确定数据目的程序的

服务类型 默认端口号
HTTP 80
HTTPS 443
FTP 21
MySQL 3306
SSH 22

四、HTTP协议

HTTP(Hypertext Transfer Protocol),即超文本传输协议,是一种无状态的请求-响应协议,用于客户端(通常是浏览器)和服务器之间的通信。它是互联网中最基础、最常用的协议之一。HTTP 协议在实现网页浏览时起着核心作用,它是浏览器和服务器之间交换数据的语言。

1、什么是超文本

“超文本”指的是网页上的内容,通常以 HTML(Hypertext Markup Language)格式呈现。HTML 是用来描述网页结构的标记语言,因此,HTTP 协议常常被用于传输 HTML 文件,当然它也传输其他格式的文件,如图片、视频、JSON 数据等。

2、HTTP请求和响应

HTTP 协议通过请求(Request)和响应(Response)进行数据交换。客户端向服务器发送请求,服务器处理请求后返回响应。

1.HTTP请求

客户端(如浏览器)向服务器发起请求。通常情况下,客户端不会主动向服务器发起请求,而是由用户触发的操作(例如点击链接、提交表单等)来生成请求。每个 HTTP 请求都由三个主要部分组成:

请求的组成

(1)请求行(Request Line):

请求方法(GET、POST、PUT、DELETE 等)

请求目标(例如/index.html)

HTTP 版本(例如HTTP/1.1)

(2)请求头(Request Header):

请求头包含了客户端的相关信息。常见的请求头如下:

Accept-Encoding:指定客户端能够接受的编码方式,例如 gzip, deflate,用来压缩响应内容。

Host:指定服务器的主机名,通常是网站的域名(如www.baidu.com)。

User-Agent:指定发起请求的浏览器类型,例如 Mozilla/5.0。

Cookie:客户端保存的 Cookie 信息,用于跟踪用户状态。

(3)请求正文(Request Body):

请求正文包含实际请求的数据,通常用于 POST 或 PUT 请求,用于发送表单数据或文件。GET 请求一般没有请求正文。



GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0
Accept-Encoding: gzip, deflate, br

这段请求的含义是:客户端通过 GET 方法请求服务器上的/index.html 页面,使用 HTTP/1.1 协议,且告诉服务器浏览器类型是 Mozilla/5.0,支持 gzip, deflate, br 等压缩方式。

请求方式

GET:用于请求指定的资源,数据通过 URL 参数传递。适用于查询数据。

POST:用于向服务器提交数据。适用于提交表单、文件上传等操作。

PUT:用于更新指定资源,通常带有请求正文。

DELETE:用于删除指定资源。

GET请求

通过URL传递参数,URL与参数之间用?隔开,多个参数用&隔开,也是表单的默认提交方式

GET传送的数据量较小,主要是因为收到URL长度的限制

GET会将数据显示到URL当中,不安全

GET请求一般用于直接获取数据,提高查询速度。

GET是无副作用的,因此可以被缓存、书签和分享

POST请求

POST的数据在请求主体内,所以相对比较安全,但不是绝对安全

POST对上传数据的大小无限制,POST请求可以做文件的上传和下载。POST适用于增删改操作

2.HTTP响应

服务器接收到客户端的请求后,会根据请求的内容返回一个响应。HTTP 响应通常包含以下几个部分:

响应组成

(1)响应状态行(Response Status Line):

HTTP 版本(如HTTP/1.1)

状态码(例如200 OK、404 Not Found、500 Internal Server Error等)

状态描述(简短的文字描述)

(2)响应头(Response Header):

响应头包含了服务器和返回数据的一些元数据:

Content-Type:指定响应数据的类型,如 text/html, application/json。

Content-Length:响应内容的长度。

Set-Cookie:服务器设置的 Cookie,用于客户端保存状态。

(3)响应正文(Response Body):

响应正文包含实际的响应数据,例如 HTML 文件、JSON 数据或图片等内容。

响应状态码

200 OK:请求成功,服务器成功返回数据。

400 Bad Request:请求有语法错误,服务器无法理解。

404 Not Found:请求的资源不存在。

405 Method Not Allowed:请求方法不被服务器支持。

500 Internal Server Error:服务器内部错误,无法处理请求。

502 Bad Gateway:服务器作为网关或代理,从上游服务器收到无效响应。



HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1234
 

  
    

Welcome to Example!

在这个响应中,服务器告诉客户端,/index.html 页面已成功返回,并且响应的内容为 HTML 格式,长度为 1234 字节,包含了网页的内容。

五、HTTPS

为了解决 HTTP 协议的安全问题,引入了 HTTPS(安全超文本传输协议)。HTTPS 在 HTTP 的基础上加入了加密层,利用 SSL(安全套接字层)或 TLS(传输层安全协议)对数据进行加密。通过 HTTPS 协议,数据在传输过程中会被加密,这不仅保证了数据的机密性(防止数据被窃取),还确保了数据的完整性(防止数据在传输过程中被篡改)。

1、HTTPS的加密方式

1.对称加密

产生秘钥,加密解密使用同一个秘钥。对称加密速度快,但秘钥的安全性较低,若秘钥在传输过程中被窃取,攻击者就能轻易解密数据。

2.非对称加密

产生公钥和私钥,公钥加密的数据需要私钥解密,私钥加密的数据需要公钥解密。处理速度相对较慢,但是安全性较高。

2、HTTPS的加密过程

1.握手阶段:

客户端与服务器之间首先进行一系列的加密握手。客户端请求服务器时,服务器会返回一个数字证书,证书包含了公钥和服务器的身份信息。客户端通过验证证书的合法性来确认服务器的身份是否可信。

2.密钥交换:

在握手阶段,客户端和服务器会使用非对称加密来交换密钥。客户端用服务器的公钥加密生成的“会话秘钥”(对称秘钥),然后将加密后的会话秘钥发送给服务器。服务器用自己的私钥解密出会话秘钥。这样,客户端和服务器就建立了一个加密的通信通道,并可以使用会话秘钥进行后续的数据加密和解密。

3.数据加密传输阶段:

在后续的数据传输过程中,客户端和服务器会使用共享的对称秘钥进行加密与解密操作。由于对称加密的效率高,数据传输速度较快。

a45fe5d2-0718-11f0-9310-92fbcf53809c.png

3、数字证书

为了防止第三方攻击者伪装成服务器进行钓鱼攻击,HTTPS 使用数字证书来验证服务器的身份。数字证书就像是一个网站的“身份证”,它由认证机构(CA)颁发,包含了服务器的公钥和身份信息。

证书组成

证书的持有者信息(如公司名称、网站域名等)

公钥

证书颁发机构(CA)的信息

证书的有效期

数字签名(确保证书的完整性,防止篡改

认证机构(CA)是经过各国政府认可的权威机构,它们负责签发和验证证书的合法性。客户端在访问 HTTPS 网站时,浏览器会验证证书的有效性,确保该证书由受信任的 CA 签发并且没有过期。

证书验证过程

当客户端访问 HTTPS 网站时,首先会收到服务器发送的数字证书。客户端会检查证书的有效性,向证书的发布机构(CA)确认证书是否合法。如果证书有效,客户端会提取公钥来加密生成的会话秘钥,并将加密后的秘钥发送给服务器。

六、Cookie和Session

1、Cookie

Cookie 是存储在客户端浏览器中的小文件,用于保存用户的状态信息。由于 HTTP 协议是无状态的,即每次请求都无法自动携带上次的状态信息,因此需要借助 Cookie 来维护状态。

1.Cookie特点

存储在客户端,容易被篡改或盗用。

可以设置过期时间。

每次请求都会随请求头一起发送,可能会影响请求性能。

2、Session

Session 是在服务器端保存的用户会话信息,每个客户端在访问服务器时,服务器会分配一个唯一的 session ID。这个 ID 通常存储在客户端的 Cookie 中,当客户端再次请求时,浏览器会自动带上这个 session ID,服务器通过 session ID 找到对应的会话信息。

1.Session特点

存储在服务器端,相对更加安全。

需要借助客户端的 Cookie 来维持会话。

不会暴露在客户端,防止被篡改。

3、Cookie和Session对比

特性 Cookie Session
存储位置 存储在客户端浏览器中 存储在服务器端
安全性 相对不安全,容易被篡改或盗用 较为安全,数据存储在服务器端,客户端只有 Session ID
容量 通常每个 Cookie 大小为 4KB 受服务器资源限制,一般较大
生命周期 可以设置过期时间,过期后自动删除 会话结束或浏览器关闭时,Session 会话数据丢失
存储内容 可以存储少量信息(如用户偏好、登录信息等) 通常存储较为重要的用户信息,如用户身份、购物车等
数据传输 每次请求都会随着请求头一起发送给服务器 每次请求时只会发送 Session ID(通常存储在 Cookie 中)
性能 每次请求发送 Cookie 可能会增加网络负担 性能较好,只传输 Session ID,数据存储在服务器端
跨域问题 不能跨域使用,不同域名下的 Cookie 无法共享 跨域时需要特别处理(如通过共享 Session ID)
存储大小限制 每个域名最多存储 20 个 Cookie,每个 Cookie 4KB 没有硬性大小限制,但受服务器内存限制
常见用途 用户偏好、用户登录状态、跟踪用户行为等 用户会话管理、验证用户身份等

七、总结HTTP和HTTPS

特性 HTTP HTTPS
全称 超文本传输协议(Hypertext Transfer Protocol) 安全超文本传输协议(Hypertext Transfer Protocol Secure)
协议类型 无加密协议 加密协议
安全性 不安全,数据以明文传输,容易受到中间人攻击 安全,数据通过加密传输,防止数据被窃取或篡改
加密方式 无加密,数据传输过程中没有保护 使用 SSL/TLS 协议对数据进行加密
端口号 使用 80 端口 使用 443 端口
验证身份 不提供身份验证 提供身份验证,通过数字证书确保服务器的身份
数据完整性 数据传输过程中容易被篡改 数据在传输过程中使用加密,保证完整性,防止篡改
性能 性能较高,因为没有加密解密过程 性能稍低,因为需要加密解密,但使用的加密算法对比一般不影响正常使用
数据传输方式 明文传输数据 加密传输数据
适用场景 适用于无需保密的内容,如公共信息、非敏感数据 适用于需要保密和安全传输的内容,如登录信息、支付信息等
浏览器显示 URL 以http://开头 URL 以https://开头,并通常带有锁形图标,表示安全
数字证书 无需数字证书 需要通过 CA 认证机构颁发的数字证书验证服务器身份
受信任 无法验证网站的真实身份,容易被钓鱼网站伪造 提供可信的身份验证,确保用户访问的是合法网站

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 通信协议
    +关注

    关注

    28

    文章

    1073

    浏览量

    41866
  • 网络安全
    +关注

    关注

    11

    文章

    3449

    浏览量

    62939
  • HTTP
    +关注

    关注

    0

    文章

    531

    浏览量

    34835
  • https
    +关注

    关注

    0

    文章

    54

    浏览量

    7547

原文标题:HTTP vs HTTPS: 揭秘网络安全的关键差异,你不会还不知道吧?

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于RK3576开发板的http/https通讯

    主要区别在于HTTPS需要CA证书、使用加密传输,且端口号通常为443,而HTTP为80。HTTP/HTTPS通讯中,客户端发送请求报文,服
    的头像 发表于 05-10 11:24 1670次阅读
    基于RK3576开发板的<b class='flag-5'>http</b>/<b class='flag-5'>https</b>通讯

    http和tcp/ip、http https之间的关系和区别

    http和tcp/ip、httphttps之间的关系和区别
    的头像 发表于 01-10 14:30 8367次阅读

    一文读懂HttpHttps区别

    http请求存在着一个很严重的问题,http协议传输的是明文,如果中间有个黑客拦截到该请求,就拦截到了我们的数据,就能将我们的用户名和密码看得一清二楚,这样隐私的数据就非常容易泄露出去。
    发表于 05-17 11:19 2691次阅读
    一文读懂<b class='flag-5'>Http</b>和<b class='flag-5'>Https</b>的<b class='flag-5'>区别</b>

    Linux Kernel将HTTP链接切换到 HTTPS

    更改方式并不是手动寻找内核树中的 HTTP 链接,而是很大程度上通过脚本自动完成,这些脚本通过查找 SVG 等文档中是否存在 HTTP 链接,随后检查目标 URL 的服务器是否提供了相对应的 HTTPS 链接
    的头像 发表于 08-14 16:20 2259次阅读
    Linux Kernel将<b class='flag-5'>HTTP</b>链接切换到 <b class='flag-5'>HTTPS</b>

    探讨HTTP为什么要升级 HTTPS协议

    之前说了 HTTP 协议的各种问题,但是它还是陪伴着互联网、陪伴着我们走过了将近二十年的风风雨雨。现在有很多新的协议尝试去取代它,来解决性能、效率等问题,但它还还能靠着多年的情分活的滋润。然而
    的头像 发表于 10-22 15:31 3957次阅读
    探讨<b class='flag-5'>HTTP</b>为什么要升级 <b class='flag-5'>HTTPS</b>协议

    网站的HTPP与HTTPS区别在哪?

    当用户打开淘宝、百度、知乎等各大平台时,网址前面会出现一个https://,将它修改为http://时,网址可以正常打开,并且自动加上了一个“s”。而当我们访问一些个人博客时,网址前面则显示http://,将
    的头像 发表于 02-08 15:56 6982次阅读

    HTTP是什么,HTTPS的优点是什么

    窃取和篡改。 HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因
    的头像 发表于 05-10 09:55 2512次阅读

    httphttps有什么区别,为什么https会取代http

    大家都知道当前https的使用更为普遍,为什么https会取代http,其中的原因恒讯科技为大家整理在本文,共有11点希望可以帮助大家更了解网站数据安全。 1、传输方式 http使用的
    的头像 发表于 05-11 16:02 2733次阅读

    httphttps区别,为什么https会取代http

    大家都知道当前https的使用更为普遍,为什么https会取代http,其中的原因恒讯科技为大家整理在本文,共有11点希望可以帮助大家更了解网站数据安全。
    的头像 发表于 09-14 13:26 2188次阅读

    HTTPS如何保证数据安全?

    虽然现在许多网站都会用到HTTPHTTPS,但是大家极力倡导使用的却是更为安全的HTTPS,今天我们就来了解一下HTTPS是如何保证数据传输的安全性的。
    的头像 发表于 10-28 09:47 1386次阅读

    HTTPHTTPS区别 HTTP协议请求类型

    HTTP协议在传输过程中数据都是明文状态,安全性较差。HTTPS协议使用SSL/TLS协议进行数据传输,保证了数据传输的安全性,可以防止敏感信息被窃取和篡改。
    的头像 发表于 06-26 17:44 1741次阅读

    什么是HTTP?什么是HTTPSHTTPHTTPS区别在哪?

    每天都在上网,在搜索东西的时候,你有发现网址有什么不同吗?本文就来谈谈HTTPHTTPS有什么不同。
    的头像 发表于 08-27 09:15 6600次阅读
    什么是<b class='flag-5'>HTTP</b>?什么是<b class='flag-5'>HTTPS</b>?<b class='flag-5'>HTTP</b>与<b class='flag-5'>HTTPS</b>的<b class='flag-5'>区别</b>在哪?

    httphttps区别

    行包括:协议及版本、状态码、状态码解释 1.2 httphttps区别 http:由于http是明文传输,所以其安全性低,易受攻击,无法
    的头像 发表于 11-10 16:42 3342次阅读
    <b class='flag-5'>http</b>和<b class='flag-5'>https</b>的<b class='flag-5'>区别</b>

    HTTPHTTPS区别

    在互联网时代,数据传输安全变得越来越重要。HTTPHTTPS 是两种广泛使用的网络协议,它们在数据传输方面扮演着关键角色。尽管它们的名字相似,但它们在安全性和用途上有着显著的区别
    的头像 发表于 12-30 09:19 2320次阅读

    HTTP 1.1 和 HTTP 2.0 的区别

    2015年正式成为互联网标准。以下是HTTP/1.1和HTTP/2之间的一些主要区别: 1. 多路复用(Multiplexing) HTTP/1.1 : 在
    的头像 发表于 12-30 09:25 1781次阅读