写点什么

HTTP 和 HTTPS 是什么 二者区别是什么

作者:肥晨
  • 2022-11-03
    江苏
  • 本文字数:1568 字

    阅读完需:约 5 分钟

HTTP 简介

HTTP(超文本传输协议)是网络上最为广泛的传输协议,被用于在 web 浏览器和网站服务器之间的传输协议。HTTP 是一个简单的请求-响应协议,它通常运行在 TCP 之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以 ASCII 形式给出;而消息内容则具有一个类似 MIME 的格式。这个简单模型是早期 Web 成功的有功之臣,因为它使开发和部署非常地直截了当。

HTTP 是应用层协议,同其他应用层协议一样,是为了实现某一类具体应用的协议,并由某一运行在用户空间的应用程序来实现其功能。HTTP 是一种协议规范,这种规范记录在文档上,为真正通过 HTTP 进行通信的 HTTP 的实现程序。

报文格式

HTTP 报文由从客户机到服务器的请求和从服务器到客户机的响应构成。请求报文格式如下: 

请求行 - 通用信息头 - 请求头 - 实体头 - 报文主体

 

(为了图方便,图是用 excel 画的所以有一道线)

 

应答报文格式如下:

状态行 - 通用信息头 - 响应头 - 实体头 - 报文主体

 

 

HTTP 协议的特点

1.HTTP 协议是无状态的

  就是说每次 HTTP 请求都是独立的,任何两个请求之间没有什么必然的联系。但是在实际应用当中并不是完全这样的,引入了 Cookie 和 Session 机制来关联请求。

2.多次 HTTP 请求

  在客户端请求网页时多数情况下并不是一次请求就能成功的,服务端首先是响应 HTML 页面,然后浏览器收到响应之后发现 HTML 页面还引用了其他的资源,例如,CSS,JS 文件,图片等等,还会自动发送 HTTP 请求这些需要的资源。现在的 HTTP 版本支持管道机制,可以同时请求和响应多个请求,大大提高了效率。

3.基于 TCP 协议

  HTTP 协议目的是规定客户端和服务端数据传输的格式和数据交互行为,并不负责数据传输的细节。底层是基于 TCP 实现的。现在使用的版本当中是默认持久连接的,也就是多次 HTTP 请求使用一个 TCP 连接。

HTTP 请求方法

  请求方法是客户端用来告知服务器其动作意图的方法。就像下达命令一样。在 HTTP1.1 版本中支持 GET、POST 等近 10 种方法。

 

HTTPS 简介

HTTPS(安全套接字层超文本传输协议)是以安全为目标的 HTTP 通道。

为什么要使用 https

首先了解一下 HTTP 的缺点:

  1. 通信使用明文传输

  2. 不验证通信方身份

  3. 无法验证报文的完整性

这时为了解决该缺陷需要使用另一种协议:HTTPS。为了数据传输的安全,HTTPS 在 HTTP 的基础上加入了 SSL 协议,SSL 依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。即 HTTP 下加入 SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL,http+加密+认证+完整性保护=https。

 


HTTP 工作原理



HTTPS 和 HTTP 的主要区别

  1. HTTPS 协议需要到 CA 申请证书,一般免费证书较少,因而需要一定费用。

  2. HTTP 是超文本传输协议,信息是明文传输,HTTPS 则是具有安全性的 ssl/tls 加密传输协议。

  3. HTTP 和 HTTPS 使用的是完全不同的连接方式

  4. HTTP 端口:80,HTTPS 端口:443

  5. HTTP 的连接无状态的;HTTPS 协议是由 SSL/TLS+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 协议安全。

HTTPS 和 HTTP 的主要区别

  1. HTTPS 协议需要到 CA 申请证书,一般免费证书较少,因而需要一定费用。

  2. HTTP 是超文本传输协议,信息是明文传输,HTTPS 则是具有安全性的 ssl/tls 加密传输协议。

  3. HTTP 和 HTTPS 使用的是完全不同的连接方式

  4. HTTP 端口:80,HTTPS 端口:443

  5. HTTP 的连接无状态的;HTTPS 协议是由 SSL/TLS+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 协议安全。

HTTPS 的缺点

HTTPS 也并不是没有缺点的:

  1. 虽然 HTTPS 加了一层安全保护,但并不是绝对安全, 掌握根证书的机构、掌握加密算法的组织同样可以进行中间人形式的攻击

  2. HTTPS 协议握手阶段比较费时,增加耗电和加载时间

  3. HTTPS 连接缓存逊色于 HTTP,会增加数据开销和功耗,甚至已有的安全措施也会因此而受到影响

  4. CA 证书需要钱,功能越强大的证书费用越高(白嫖党直接哭泣)

  5. SSL 通常需要绑定 IP,不能在同一 IP 上绑定多个域名,IPv4 资源非常难以支撑该消耗


发布于: 刚刚阅读数: 4
用户头像

肥晨

关注

还未添加个人签名 2021-04-15 加入

平台:InfoQ、阿里云、腾讯云、CSDN、掘金、博客园等平台创作者 领域:前端 公众号:农民工前端

评论

发布
暂无评论
HTTP和HTTPS是什么 二者区别是什么_11月月更_肥晨_InfoQ写作社区