学习HTTP——HTTPS

电脑知识 投稿 76000 0 评论

学习HTTP——HTTPS

前言

因为工作需要,需要用到大量的关于 HTTP 协议的知识,目前掌握的关于 HTTP 请求以及协议的知识都是零散的,打算针对知识盲区系统的学习一些,理清概念。

为什么会出现 HTTPS

因为 HTTP 存在一些难以解决的问题,以下是安全性的问题,这促使产生了 HTTPS。HTTP 在安全性方面,主要有以下的问题。

  • HTTP 采用明文传输,内容可能会被窃听

  • HTTP 不验证对方的身份,可能会遭遇伪装

  • HTTP 不验证内容的完整性,可能会遭遇篡改

既然又了上述问题,那么显然 HTTPS 就是要来解决这些问题。

HTTP + 加密 + 认证 + 完整性验证 = HTTPS

简介

从标题可以看出来,额外添加的功能,实际上正好对应上述 HTTP 所存在的问题,将他们逐个解决就形成了 HTTPS。
这里想先介绍两个概念。

  • SSL:Secure Socket Layer 安全套接层, 最初是由网景公司(Netscape)研发,因为发现 HTTP 存在安全性问题。后被IETF(The Internet Engineering Task Force - 互联网工程任务组)标准化后写入(RFCRequest For Comments),RFC里包含了很多互联网技术的规范。

  • TLS:由于HTTPS的推出受到了很多人的欢迎,在SSL更新到3.0时,IETF对SSL3.0进行了标准化,并添加了少数机制(但是几乎和SSL3.0无差异),标准化后的IETF更名为TLS1.0(Transport Layer Security 安全传输层协议),可以说TLS就是SSL的新版本3.1,并同时发布“RFC2246-TLS加密协议详解”。

这俩段是从网络上搜索得来的,可以看出来平时所说的 SSL/TLS 其实可以理解成一种加密方式即可,没必要分开来看,后文就称之为 SSL 了。得益于网络结构的分层设计,很容易在 HTTP 协议下加上一层。HTTP 一般直接和 TCP 进行通信,而 HTTPS 首先要经过 SSL 层,然后再和 TCP 通信。其实我学到这里的时候,很容易就能想到,有得必有失,HTTPS 增加了安全性,但是同时降低了性能,但是就目前的趋势来看,安全性肯定更重要,所以往后应该基本上都会采用 HTTPS 的方式吧。

到这里,可以认为 HTTPS 相比与 HTTP,多了一层 SSL,用来保证安全性。

  • HTTP:HTTP -> TCP

  • HTTPS: HTTP -> SSL -> TCP

加密

首先来看看加密,关于加密,就不得不说两种加密手段,对称加密和非对称加密,这两种方法在 HTTPS 中均有体现。

对称加密

编程笔记 » 学习HTTP——HTTPS

赞同 (150) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽