HTTP+加密+身份认证+信息的完整性保护=HTTPS
1.加密:通过共享之后的密钥进行加密的。
2.身份认证:通过证书进行保障的。(证书需要先申请,申请需要费用,是权威机构颁发的)
双向认证:客户端和服务器都需要证书认证。客户端也要申请证书,发给服务器去进行身份认证。这个要看具体的需求。
3.完整性保护:
哈希算法用来计算出一个哈希值,这个哈希值用来验证消息的完整性。
这是个加密的报文
这个报文可以用来验证消息的完整性。
客户端用哈希算法计算出一个摘要信息(哈希值),然后进行加密发给服务器。
因为共享了同一个哈希算法。 服务器通过同样的哈希算法算出摘要信息(哈希值)。
服务器对比客户端发过来的摘要信息(哈希值)是否等于我自己计算出来的这个摘要信息(哈希值)。
如果摘要信息(哈希值)相同,数据就没有被篡改。
图片来自网络:HTTP协议对比HTTPS协议
HTTPS对服务器的资源的要求比较高。有些小论坛就没必要使用HTTPS的协议。
HTTPS协议:TCP握手+http请求响应+SSL握手=1.速度慢;2.对服务器本身性能的要求特别高。(会消耗CPU、内存去进行计算,这个计算也会导致处理速度会特别慢)
HTTP协议:TCP握手+http请求响应=速度快
证书是收费的。年费大概一千左右。所以HTTPS是贵一些的。
网站对私人信息、敏感信息不是很在意的就使用HTTP协议了。
思维导图是小编所画,如有错误之处请私信指教,谢谢
1.实现两台机器互联,机器和机器之间怎么通信?----物理层。
2.01010比特流其实是没什么意思的数据,变成有意义的数据呢?确认这个数据是发给我的呢?---数据链路层。
3.主机ABCDEF,路径很多条,怎么选择最优路径?要怎么知道对方的MAC地址?--网络层(在第三层)
4.发送数据特多,数据包很大,需要很长时间?中间网络中断,重传?数据包是完整的正确的?---传输层。
5.断点续传功能。---会话层。
6.操作系统:Windows,MACOS,Linux,语法是不一样,不同系统之间进行通信。---表示层。
7.字节流的格式,不好识别,不好操作。---应用层。