HTTP 通信协议
首先有幸,阅读了 <HTTP权威指南> 一书。从书中得到 HTTP通信的介绍,特做些知识记录,总结。
那我们从问题开始吧:
1、HTTP的通信过程是 怎么样的呢?
2、HTTPS的通信过程是 怎么样的呢?
3、为何说 HTTPS是更安全的连接呢?
4、为何说 HTTP和HTTPS是可靠的传输呢?
我们来解答吧
一、 HTTP的一次通信过程(大致通信过程语义化表述):
1、通过域名,请求域名解析DNS服务器
2、DNS解析为IP服务器地址后,进行TCP连接
3、TCP连接IP服务器端口,请求连接打开端口,进行连接
4、send Http 数据到这个 TCP连接服务器上
5、response Http数据,从服务器读取响应回来的数据
6、Http的TCP连接断开
二、 HTTPS的一次通信过程(大致通信过程语义化表述):
1、通过域名,请求域名解析DNS服务器
2、DNS解析为IP服务器地址后,进行TCP连接
3、TCP连接IP服务器端口,请求连接打开端口,进行连接
4、client 数据SSL or TTL加密后,send Http 数据到这个 TCP连接服务器上
5、server 收到请求处理,数据经过 SSL or TTL加密后,返回client
6、response Http数据,从服务器读取响应回来的数据
7、Http的client和 server 的 TCP连接断开
以上无论HTTP或HTTPS为之一次完整的通信。
三、为何说 HTTPS是更安全的连接呢?
这个由HTTPS在网络结构设计上,开始展开说明:
我们知道,HTTP通信在网络结构属于 5层协议
在这里插入图片描述
再值得一说的是,HTTPS是在HTTP的基础上,增加 加密层 。这个加密层是设计在 传输之前,达到一个数据加密的良好效果。所以 HTTPS的网络结构设计如下:
从语言上描述如下
HTTP 和 HTTPS之间,通过网络分层设计:
HTTP 应用网络分层: 物理层—数据链路层----网络层—传输层—应用层
HTTPS 应用网络分层: 物理层—数据链路层----网络层—传输层—TLS/SS加密层----应用层
可见,HTTPS更安全,是因为在传输和应用之间,加入了 数据加密层进行传输的加密。
四、为何说 HTTP和HTTPS是可靠的传输呢?
这个其实就从我们最熟悉的 TCP/IP协议来理解了。因为 HTTP和HTTPS的网络底层通信,就是使用的 TCP/IP协议来实现的。整个可靠连接,使用的是闻名的 TCP连接。
从语言上描述的话,从数据的角度出发如下:
HTTP的 TCP/IP 连接传输,是通过 IP分组进行传输其中包括:
IP分组头部: 20个字节
TCP分段头部:20个字节
TCP数据段:0或N个字节
IP分组头部的内容: 记录了源 ip地址、目标ip地址、长度、其他的标记数据
TCP分段头部的内容: 记录了TCP连接端口号、TCP控制标记、用于数据排序或完整性检查的 数据值。
以上是HTTP或HTTPS的通信。至于传输的密钥(包括 数据密钥认证、ID卡认证、对称密钥、非对称密钥、CA证书等HTTP的安全和加密知识,放下章 进行收集分享)