http和https的区别

我们都知道使用浏览器访问一个网站页面,需要知道该网站的域名,在浏览器的地址栏中我们会看到一串URL,如图
在这里插入图片描述
网站的URL会分为两部分:通信协议和域名地址。

域名地址都很好理解,不同的域名地址表示网站中不同的页面,而通信协议,简单来说就是浏览器和服务器之间沟通的语言。网站中的通信协议一般就是HTTP协议和HTTPS协议。两者分别是什么,有什么区别呢?

http

  1. 互联网上应用最广泛的网络通信协议,基于tcp,可以使浏览器工作更加高效,减少网络传输。
  2. 是一种使用明文数据传输的网络协议。一直以来HTTP协议都是最主流的网页协议,HTTP协议被用于在Web浏览器和网站服务器之间传递信息,以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息。
  3. 无连接
    限制每次连接只处理一个请求。服务器处理完请求,并收到客户的应答后,即断开连接,但是却不利于客户端与服务器保持会话连接,为了弥补这种不足,产生了两项记录http状态的技术,一个叫做Cookie,一个叫做Session。
  4. 无状态
    无状态是指协议对于事务处理没有记忆,后续处理需要前面的信息,则必须重传

HTTP报文组成

请求报文构成:

  • 请求行:包括请求方法、URL、协议/版本

  • 请求头(Request Header)

  • 请求正文

响应报文构成:

  • 状态行

  • 响应头

  • 响应正文

常见请求方法

  • GET:请求指定的页面信息,并返回实体主体。
  • POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。
  • POST请求可能会导致新的资源的建立和/或已有资源的修改。
  • HEAD:类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
  • PUT:从客户端向服务器传送的数据取代指定的文档的内容。
  • DELETE:请求服务器删除指定的页面。

https

  1. 是http的加强版,可以认为是http+ssl(Secure Socket Layer),在http的基础上增加一系列安全机制。

SSL(Secure Socket Layer,安全套接字层):1994年为 Netscape 所研发,SSL协议位于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持。 TLS(Transport LayerSecurity,传输层安全):其前身是 SSL, 它最初的几个版本(SSL 1.0、SSL 2.0、SSL 3.0)由网景公司开发,1999年从 3.1 开始被 IETF 标准化并改名,发展至今已经有 TLS 1.0、TLS 1.1、TLS 1.2 三个版本。SSL3.0和TLS1.0由于存在 安全漏洞,已经很少被使用到。TLS 1.3 改动会比较大,目前还在草案阶段, 目前使用最广泛的是TLS 1.1、TLS 1.2。

  1. SSL/TLS依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
  2. 在数据进行传输之前,对数据进行加密,然后再发送到服务器。这样,就算数据被第三者所截获,但是由于数据是加密的,所以你的个人信息仍然是安全的。这就是HTTP和HTTPS的最大区别。

不同点

  1. 安全性不同
  2. 网站申请流程不同
    https协议需要到CA申请证书,一般免费证书很少,需要交费,Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。
  3. 默认端口不同
    http和https使用的是完全不同的连接方式,同时使用的端口也不同,http使用的是80端口,https使用的是443端口。在网络模型中,HTTP工作于应用层,而HTTPS工作在传输层。
  4. 对搜索排名的提升
    这也是很多站长所关注的地方。百度和谷歌两大搜索引擎都已经明确表示,HTTPS网站将会作为搜索排名的一个重要权重指标。也就是说HTTPS网站比起HTTP网站在搜索排名中更有优势。HTTPS网站相比起HTTP网站拥有着多种的优势,HTTP明显已经不能适应当今这个互联网时代,可以预见到HTTP在不久的将来将会全面被HTTPS所取代

为什么要用https?

实际使用中,绝大说的网站现在都采用的是https协议,这也是未来互联网发展的趋势。下面是通过wireshark抓取的一个博客网站的登录请求过程。
在这里插入图片描述
可以看到访问的账号密码都是明文传输, 这样客户端发出的请求很容易被不法分子截取利用,因此,HTTP协议不适合传输一些敏感信息,比如:各种账号、密码等信息,使用http协议传输隐私信息非常不安全。
一般http中存在如下问题:

  • 请求信息明文传输,容易被窃听截取。
  • 数据的完整性未校验,容易被篡改
  • 没有验证对方身份,存在冒充危险

HTTPS的缺点

  • HTTPS协议多次握手,导致页面的加载时间延长近50%;
  • HTTPS连接缓存不如HTTP高效,会增加数据开销和功耗;
  • 申请SSL证书需要钱,功能越强大的证书费用越高。
  • SSL涉及到的安全算法会消耗 CPU 资源,对服务器资源消耗较大。

https的过程

  1. 客户端请求服务器获取证书公钥
  2. 客户端(SSL/TLS)解析证书(无效会弹出警告)
  3. 生成随机值
  4. 用公钥加密随机值生成密钥
  5. 客户端将秘钥发送给服务器
  6. 服务端用私钥解密秘钥得到随机值
  7. 将信息和随机值混合在一起进行对称加密
  8. 将加密的内容发送给客户端
  9. 客户端用秘钥解密信息
    在这里插入图片描述
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值