HTTP和HTTPS

在了解http和https的区别之前, 先了解什么是http和https协议。

一 基本概念

HTTP: (hyperText Transfer protocol, 超文本传输协议),是应用最为广泛的一种网络传输协议,所有的从www服务器传输超文本到本地浏览器的文件都必须遵从这个标准。HTTP协议使得浏览器更加高效,使网络传输减少。
HTTPS: 是以安全为目的HTTP通道,在HTTP下增加SSL, HTTPS的安全基础为SSL, 因此加密的详细内容就需要SSL。

HTTPS主要用于:
①建立信息安全通道, 保证数据传输的安全;
②确认网站的真实性。

二 HTTP和HTTPS的区别

HTTP协议传输的数据都是不加密的,也就是明文传输,因此使用HTTP协议传输信息是十分不安全的,为确保隐私数据能够加密传输,于是网景公司设计SSL(Secure Socket Layer)协议用于对HTTP协议传输的数据进行加密,HTTPS由此诞生。
简单说来,HTTPS协议是由SSL+HTTP协议构建的,可进行加密传输、身份验证的网络协议,HTTPS比HTTP协议更加的安全。

HTTP和HTTPS的主要区别如下:
  1. http的连接简单,是无状态的,即不建立持久的连接;
  2. https协议需要ca申请证书,一般免费证书较少,因而需要费用;
  3. http是超文本传输协议,信息是明文传输,https是具有安全性的ssl加密传输协议;
  4. http和https使用完全不同的连接方式,使用的端口也不同,http端口号为80,https端口号为443;

HTTP请求过程

一个完整的http请求一般包括7个步骤:

  1. 建立TCP连接
  2. web客户端向web服务器发送请求命令;
  3. 客户端发送请求头信息;
  4. 服务器应答;
  5. 服务器应答请求头信息;
  6. 服务器向浏览器发送数据
  7. 关闭TCP连接

一个http请求包含四部分:

  1. HTTP请求方法或动作,GET、POST等;
  2. 正在请求的URL;
  3. 请求头,包含一些客户端环境,身份验证等信息,大多数都不是必需的,content-length是必须的;
  4. 请求体,即请求正文,包含提交的查询字符串信息,表单信息等;

HTTP响应

  1. 状态码:
    1**:信息性状态码,接收的请求正在处理
    2**:成功状态码,请求正常处理完毕
    3**:重定向状态码,需要进行附加操作已完成请求
    4**:客户端错误状态码,服务器无法处理请求
    5**:服务器错误状态码,服务器处理请求错误
  2. 响应头:服务器类型,日期时间,内容类型和长度;
  3. 响应体:响应正文

TCP三次握手:
标志:SYN/ACK

  1. 发送端——>数据包(SYN)——>接收端
  2. 接收端——>数据包(SYN/ACK)——>发送端
  3. 发送端——>数据包(ACK)——>接收端

TCP四次挥手

  1. 主动关闭方——TIN(关闭数据传送)——被动关闭方
  2. 被动关闭方——ACK(确认序号为收到序号+1)——主动关闭方
  3. 被动关闭方——FIN(关闭数据传送)——主动关闭方
  4. 主动关闭方——ACK(确认序号为收到序号+1)——被动关闭方

HTTPS的优点

尽管HTTPS并非绝对安全,掌握根证书的机构、掌握加密算法的组织同样可以进行中间人攻击,但https仍是现行架构下最安全的解决方案,好处如下:

  1. 使用HTTP是协议可认证用户和服务器,确保数据发送到正确的客户机和服务器
  2. https协议是http+http协议构建的可进行加密传输,身份认证的网络协议,要比http协议安全,可防止数据在传输过程中不被窃取,改变,确保数据的完整性
  3. https是现行架构下最安全的解决方案,虽不是完全安全,但大幅增加了中间人攻击的成本

HTTPS的缺点

  1. https协议在握手阶段比较费时,会使页面加载时间延长,耗电增加
  2. https连接缓存数不如HTTP高效,会增加数据开销与功耗,甚至已有的安全措施也会受影响
  3. ssl证书需要钱,功能越强大,证书费用越高,小网站一般不用
  4. ssl证书需要绑定IP,不能在同一IP上绑定多个域名,IPv4资源不可能支撑这个消耗
  5. https协议的加密范围比较有限,ssl证书的信用链体系并不安全,特别是在某些国家可以控制CA根证书的情况下,中间人攻击一样可行
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值