这段时间毕竟也是 “金九银十” 的面试的黄金季节 , 阿粉当然也想去面试 , 但是因为自身受限 , 所以只能采访一下出去面试的同学们都问了什么内容 , 其中有一个 , 阿粉觉得有必要给大家分享一下 , 就是问关于 HTTP 的内容 。
HTTPHTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网服务器传输超文本到本地浏览器的传送协议 。HTTP 是基于 TCP/IP 协议通信协议来传递数据(html 文件、图片文件、查询结果等) 。它不涉及数据包(packet)传输 , 主要规定了客户端和服务器之间的通信格式 , 默认使用80端口 。
这其实就是百度百科里面的精简化的内容 , 虽然说不上太细致 , 但是已经算是对HTTP做了一个大概的描述 , 我们接下来就从以下的几个方面来看一下这个HTTP吧 。
我们从这里就不再多解释 HTTP报文 和 主体 这些内容了 , 阿粉之前也是完整的给大家解释过了 , 包括了 HTTP 的进化历史 , 阿粉今天我们来讲讲 HTTP 和 HTTPS 的关系 。
HTTP缺点众所周知 , HTTP 的优点那可是一大堆:
- 简单、灵活、易于扩展
- 应用广泛、环境成熟
- 无状态 (不需要额外的资源来记录状态信息)
而且 HTTP 在我们的认知当中 , 他就是一个不安全的 , 第一个原因是上面说的明文 , 还有就是 HTTP 不验证通信双方的身份 , 所以对方的身份有可能伪装 , 就像某些公共场所的那些 公共WIFI , 还有就是 HTTP 不能验证报文的完整性 , 所以报文也是有可能被篡改的 。
基于这些内容 , 所以我们很多时候对 HTTP 的选择都比较慎重 , 不然你传输内容的时候 , 别人用抓包工具就很容易的能够分析出你想要传递的内容 。
这时候我们就想到了一个事情 , 加密处理一下不就好了?
对 , 完全没问题 , HTTP 没有加密的机制 , 但是我们可以想办法处理 , 这个办法就是:
SSL 或者 TLS
SSL: 安全套接层
TLS:安全层传输协议
当他们组合使用的时候 , 就能够加密 HTTP 的通信的内容了 , 这时候就能在这条线路上进行通信 , 而通过 SSL组合使用后的 HTTP 被称为 HTTPS 或者称之为 HTTP overSSL 。
HTTPS大白话说一下 , HTTP 在加上加密处理和认证以及完整性保护之后就是 HTTPS 。
分辨 HTTPS 最简单的方法就是 , 你在浏览器访问的时候 , 能够看到一个小锁的标识 。
文章插图
现在百分之90以上的网站不都是使用的 HTTPS 么 ,
我们使用抓包工具来看一下 HTTPS 的传输内容试试 。
文章插图
我们从中看到了TLS 的版本 , 还有阿粉没有截图上的随机数 。
这时候我们就得来完整的分析 HTTPS 的安全通信机制了 。来看个图看一下 然后我们再拿我们的抓包工具来进行分析 。
文章插图
上面这是 HTTPS 的安全通信的机制 , 我们分别来看看都干了什么 。
第一步:Client Hello
客户端通过 发送 Client Hello 报文开始 SSL/TSL 通信 。其中包含了 SSL/TSL 的版本 , 所使用的加密的方法等一系列的内容 。
第二步:Server Hello
服务端根据客户端发送的支持的 SSL/TLS 协议版本 , 和自己的比较确定使用的 SSL/TLS 协议版本 。缺点假面算法等内容 。
第三步:服务器发送 Certificate 报文 , 报文中包含了公开密钥证书 。
证书的目的实际上就是保证标识的身份 , 证书一般采用X.509标准 。
第四步:Server Key Exchange
服务器发送 Server Hello Done 报文请求客户端 , 第一阶段的 SSL/TSL 握手协商部分结束 。
也有很多人习惯的称第四步是 Server Hello Done 实际上当我们抓包的时候 , 发现他们是在一次请求中的 , 我们一会抓包看一下试试 。Server Hello Done 实际上就是相当于我给你说我这边发完毕了 。
推荐阅读
- 高铁乘务员面试要求
- 高校|时尚心理学:见工面试怎样穿?心理学家透露穿这个颜色录取率最高
- 大学生|假如有5杯水,却来了6个领导,应该怎么分?国企面试题难倒众人
- 00后|00后毕业生简历太狂野了?谷爱凌的朋友!面试官:被简历笑出腹肌
- 服务器搭建网站时,是选http还是https?
- 阿里P8面试官:如何设计一个扛住千万级并发的架构?
- 免费的HTTPS证书只能用3个月?教你怎么永久自动续期,一劳永逸
- 申请永久免费的HTTPS证书
- 面试|来了面试电话,聊了很久,为何没了下文?
- 大厂Android开发高频面试问题:说说你对Zygote的理解