HTTP、HTTPS 了解一下

什么是HTTP?

超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法。

缺点:

1,通信使用明文,内容可能被窃听(重要密码泄露)

2,不验证通信方身份,有可能遭遇伪装(跨站点请求伪造)

3,无法证明报文的完整性,有可能已遭篡改(运营商劫持)

发展历史

版本 产生时间 内容 发展现状
HTTP/0.9 1991年 不涉及数据包传输,规定客户端和服务器之间通信格式,只能GET请求 没有作为正式的标准
HTTP/1.0 1996年 传输内容格式不限制,增加PUT、PATCH、HEAD、 OPTIONS、DELETE命令 正式作为标准
HTTP/1.1 1997年 持久连接(长连接)、节约带宽、HOST域、管道机制、分块传输编码 2015年前使用最广泛
HTTP/2 2015年 多路复用、服务器推送、头信息压缩、二进制协议等 逐渐覆盖市场

 

 

 

 

多路复用:通过单一的HTTP/2连接请求发起多重的请求-响应消息,多个请求stream共享一个TCP连接,实现多留并行而不是依赖建立多个TCP连接。

HTTP报文格式

什么是HTTPS?

  即http+加密+认证+完整性保护=https。

《图解HTTP》这本书中曾提过HTTPS是身披SSL外壳的HTTP。HTTPS是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全信道,加密数据包。HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。

PS:TLS是传输层加密协议,前身是SSL协议,由网景公司1995年发布【为了解决http是明文带来的问题】,1999年IETF将SSL标准化,改名为TLS,所以这两者其实就是同一种协议。

SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层:
SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。
SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。


https并非应用层的一种新协议,只是http通信接口部分用ssl/tls协议代替而已。通常http直接和tcp通信,当使用ssl时则演变成先和ssl通信,再由ssl和tcp通信。
所谓https,其实就是身披ssl协议这层外壳的http

https与http的区别

1,https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

2,http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

3,http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

4,http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

问题:对称秘钥加密和非对称秘钥加密的区别

问题:SSL/TLS协议的基本原理。

参考:https://www.cnblogs.com/jesse131/p/9080925.html

参考:https://blog.csdn.net/xiaoming100001/article/details/81109617

原文地址:https://www.cnblogs.com/hfeng007/p/11446460.html