Skip to main content

HTTP与HTTPS

一、HTTP

1. 概述

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是实现网络通信的一种规范。 在计算机网络的世界里,存在不同的协议,如:广播协议、寻址协议、路由协议等......

HTTP是一个基于TCP/IP通信协议来传递数据(包括但不限于HTML 文件, 图片文件, 查询结果等)。

在实际应用中,HTTP常被用于在web浏览器和网站服务器之间传输信息,以明文方式传输,不提供任何方式的数据加密。

2. HTTP协议特点

  • 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GETHEADPOST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
  • 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
  • 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
  • 无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。如果需要用到状态存储可以使用Session或者Cookie
  • 支持B/S以及C/S模式,即客户/服务模式。

二、HTTPS

1. 概述

在上述介绍HTTP中,了解到HTTP传递信息是以明文的形式发送内容,这并不安全。而HTTPS出现正是为了解决HTTP不安全的特性

为了保证这些隐私数据能加密传输,让HTTP运行安全的SSL/TLS协议上,即 HTTPS = HTTP + SSL/TLS,通过SSL证书来验证服务器的身份,并为浏览器和服务器之间的通信进行加密

SSL 协议位于 TCP/IP 协议与各种应用层协议之间,浏览器和服务器在使用 SSL 建立连接时需要选择一组恰当的加密算法来实现安全通信,为数据通讯提供安全支持

2. 什么是SSL/TLS

SSL(Secure Socket Layer)安全套接层,是1994年由Netscape公司设计的一套协议,并与1995年发布了3.0版本。

TLS(Transport Layer Security)传输层安全是IETF在SSL3.0基础上设计的协议,实际上相当于SSL的后续版本。

SSL/TLS是一个安全通信框架,位于TCP/IP协议与各种应用层协议(HTTPPOP等)之间,为数据通信提高安全支持。

3. SSL证书有哪些类型

有几种不同类型的 SSL 证书。一个证书可以应用于一个或多个网站,具体取决于类型:

  • 单域:单域 SSL 证书仅适用于一个域(“域”是网站的名称,例如 www.cloudflare.com)。
  • 通配符:与单域证书一样,通配符 SSL 证书仅适用于一个域。但是,它也包括该域的子域。例如,通配符证书可以覆盖 www.cloudflare.com、blog.cloudflare.com,和 developers.cloudflare.com,而单域证书只能覆盖第一个。
  • 多域:顾名思义,多域 SSL 证书可以应用于多个不相关的域。

SSL 证书还具有不同的验证级别。验证级别就像背景检查一样,并且级别会根据检查的彻底性而变化。

  • 域验证:这是最严格的验证级别,也是最便宜的级别。企业只需要证明他们控制着域。
  • 组织验证:这是一个需要亲力亲为的过程:证书机构直接联系请求证书的人员或企业。这些证书更受用户信赖。
  • 扩展验证:在发出 SSL 证书之前,需要对组织进行全面的背景检查。

4. SSL连接建立流程

流程图如下所示:

SSL建立连接流程图

三、HTTPHTTPS区别

  • HTTPS是HTTP协议的安全版本,HTTP协议的数据传输是明文的,是不安全的,HTTPS使用了SSL/TLS协议进行了加密处理,相对更安全
  • HTTP 和 HTTPS 使用连接方式不同,默认端口也不一样,HTTP是80,HTTPS是443
  • HTTPS 由于需要设计加密以及多次握手,性能方面不如 HTTP
  • HTTPS需要SSL,SSL 证书需要钱,功能越强大的证书费用越高

四、参考文档