一文讲解 HTTPHTTPS

Posted 互联网求职派

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一文讲解 HTTPHTTPS相关的知识,希望对你有一定的参考价值。





求       职       派








今天多看一道题,明天 offer ssp


HTTP、HTTPS 篇

一道无论后台还是前端都爱问的题


本篇文章从面试常考角度做了介绍,具体实现细节可以查阅相关参考书或 RFC 文档

HTTP/1.0:https://tools.ietf.org/html/rfc1945

HTTP/2:https://http2.github.io/http2-spec/

SSL/TLS:https://tools.ietf.org/html/rfc5246



1

HTTP、HTTPS 基础知识

HTTPS = HTTP + SSL/TLS 


一、含义解释

1、HTTP: 

(1)HyperText Transfer Protocol 

(2)超文本传输协议

(3)传输未加密的明文数据

2、SSL:

(1)Secure Sockets Layer

(2)安全套接层

    TLS:

(1)Transport Layer Security 

(2)安全传输层

3、HTTPS:

(1)HTTP over SSL/TLS

(2)两大特点:加密传输、身份认证

(3)加密传输为:使用安全的数据通道,保证数据安全;身份认证为:使用 SSL 证书信用链体系


二、HTTP 作用过程

HTTP 是万维网(Web)的基础

图 1 Web 客户端 - 服务器结构

1、Web 客户端(通常称为浏览器)与 Web 服务器 使用一个或多个 TCP 连接进行通信

2、知名的Web 服务器端口是 TCP 的80号端口

3、Web浏览时客户端与服务器在 TCP 连接上进行通信,所采用的 协议就是本篇描述的 HTTP协议。[关于TCP/IP 的讲解见前述文章]


三、SSL/TLS 作用过程

1、基本思路是采用公钥加密法,客户端先向服务器端索要公钥,然后用公钥加密信息,服务器收到密文后,用自己的私钥解密


2、基本过程为:

(1) 客户端向服务器端索要并验证公钥

(2) 双方协商生成"对话密钥"

(3) 双方采用"对话密钥"进行加密通信


四、HTTPS 作用过程

1、TCP 三次同步握手

2、客户端验证服务器数字证书

3、DH 算法协商对称加密算法的密钥、hash 算法的密钥

4、SSL 安全加密隧道协商完成

5、网页以加密的方式传输,用协商的对称加密算法和密钥加密,保证数据机密性;用协商的hash算法进行数据完整性保护,保证数据不被篡改。



2

HTTP、HTTPS 比对

一、两者区别

图 2 HTTP、HTTPS 端口和协议关系区别

1、HTTP 默认工作在 TCP 协议 80 端口,用户访问网站 http:// 打头的都是标准 HTTP 服务;HTTPS 默认工作在 TCP 协议 443 端口,网站为 https:// 打头

2、HTTP 明文传输,数据未加密,安全性较差;HTTPS 数据传输过程是加密的,安全性较好

3、在 OSI 七层网络模型中,HTTP 工作于应用层,HTTPS 工作于传输层

4、HTTP 无需证书,而 HTTPS 需要认证证书


二、共同点

1、两者采用同样的基础的协议

2、主要流程均为浏览器与 Web 服务器的指定端口建立一条连接,服务器接收到请求时返回一个状态码以及消息,这个回应可能是请求信息、或者指示某个错误发送的错误信息,系统使用统一资源定位器 URI 实现资源位置唯一指定



3

HTTPS 缺点

前面介绍了 HTTPS 各项优于 HTTP 的方面,这里给出它的一些缺点


一、技术层面

1、使页面加载时间延长 50%,并会增加 10% ~ 20% 耗电

2、安全性有限,对于以下场景失去防护:黑客攻击、拒绝服务器攻击、服务器劫持等

3、SSL 证书信用链体系并不完善,特别是有些国家可以控制 CA 根证书


二、成本层面

1、SSL 的专业证书需要购买,功能越强则价格越高

2、要绑定固定 IP,到增服务器增加了固定 IP 费用

3、HTTPS 连接服务器端占资源较多,带宽成本增加



4

备注

本篇主要给出了 HTTP、HTTPS 两者交叉的面试点,下一篇相关文章将会围绕 HTTP/1.0、HTTP/1.1 及请求、响应内部内容进行说明


点击阅读原文,可以阅读前述 TCP/IP 讲解文章





面经 | 求职 



原创内容:Mila

排版:Mila

如需转载请联系授权



以上是关于一文讲解 HTTPHTTPS的主要内容,如果未能解决你的问题,请参考以下文章

一文讲解深度学习语言自然语言处理(NLP)第一篇

一文解析Spring编程式和声明式事务实例讲解

转载:一文讲解图像插值算法原理

一文详细讲解API网关核心功能和API管理扩展

一文讲解高性能数据库:分库分表

一文为你详细讲解对象映射库AutoMapper所支持场景