网络协议-Http与Https

 

1.Http

1.1 概述

      Http(HyperText Transfer Protocol)全称超文本传输协议,是属于应用层的协议基于TCP/IP的,所以它只是规定一些要传输的内容和头部信息,然后通过TCP协议进行传输依靠IP协议进行寻址

     Http是无状态协议,对于事务处理没有记忆能力。

1.2 Http请求流程

1.建立TCP连接
2.浏览器向服务器发送请求命令
3.浏览器发送请求头信息
4.服务器应答
5.服务器发送应答头信息
6.服务器向浏览器发送数据
7.服务器关闭TCP连接

 

1.3 request方式

      常用的请求方法主要有:GET和POST

1.4 request内容

       Http允许传输任一类型的数据对象,正在传输的数据类型由Content-Type加以标记。     

1.5 Get与Post区别

GetPost
用于获取数据用于提交数据
传递的参数追加在URL后面,用户可见,安全性低通过http body提交,传递的参数封装在请求数据包中,用户不可见,安全性高
传送的数据量小,一般不大于2kb传送的数据量可以很大,传输的数据放在消息体中
可以被浏览器缓存不会被浏览器缓存
 文件传输只能使用post方式,比如上传照片,压缩文件等等。

1.6 Http1.0、Http1.1与Http2的比较

        Http1.0

无连接

Http1.0是无连接的。限制每次连接只处理一个请求,即服务器处理完客户的请求,并收到客户的应答后,就断开连接。

 

       Http1.1

连接复用Http1.1连接是可以复用的
消息头增加host

在request消息头增加了host。

Host:www.xxx.com

增加request方法增加了put、delete、connect等request方法

         Http2

格式Http2采用二进制格式,而不是文本格式
多路复用完全的多路复用
 可以让服务器主动把响应“推送”到客户端缓存中

1.7 状态码

        常见的状态码如下所示:

200 OK客户端请求成功
400 Bad Request客户端请求有语法错误,服务器无法理解
401 Unauthroized请求未经授权
403 Forbidden服务器收到请求,但拒绝提供服务
500 Internal Server Error服务器内部错误,无法完成请求
503 Server Unavailable服务器当前不能处理客户端请求,但一段时间后肯恢复正常

1.8 缺点

      HTTP在安全方面的缺点如下:

1.Http会接收任何客户端发送给它的信息,包括攻击者(除了设置了指定的IP和端口才能访问),不验证发送方的身份。

2.无法保证传输的信息完整性,所以客户端接收到的信息很可能已经被篡改了。
3.传输的信息是明文,通过抓包就能看到。
4.中间人可以进行拦截,获取传输和响应内容。

1.9 安全缺点解决方式

     1)内容加密

      这种技术很常用,但是工作量很大,要将所有的传输信息加密发送给服务端,服务端再根据一定规则进行解密,然后将要返回给客户端的信息机密,再次返回给客户端。

      虽然加密了,但是可以通过抓包看到加密的信息。

     2)通讯加密

     HTTP协议中没有加密机制,但是可以通过SSL(Scure Socket Layer,安全套接层)或者TLS(Transfer Layer Scurity,安全传输协议)组合使用,这样就加密了HTTP通讯内容。

     当用SSL建立了安全的通讯线路后,就可以在这条线路上安全的传输Http内容了,这种组合就成为HTTPS(Http Scure,超文本安全传输协议)或者Http Over SSL。

2 Https

2.1 概述

          Https协议是一个安全通信通道,基于Http开发。当用SSL(安全套接字)建立了安全的通讯线路后,就可以在这条线路上安全的传输HTTP内容了,这种组合就成为HTTPS(Http Scure,超文本安全传输协议)或者Http Over SSL。

2.2 对称加密

      其加密和解密都使用同一个秘钥的方式就是对称加密。

2.3 非对称加密

      非对称加密会有一对秘钥:公钥和私钥

      1)公钥

      公钥机密的内容只有私钥才可以解开,

      2)私钥

     私钥加密的内容,所有的公钥都可以解开(指和秘钥是一对的公钥)。

      3)保存

       私钥只保存服务器端,公钥可以发送给所有的客户端。

2.4 工作流程

       HTTPS就是使用SSL/TLS协议进行加密传输,让客户端拿到服务器的公钥,然后客户端随机生成一个对称加密的秘钥,使用公钥加密,传输给服务端,后续的所有信息都通过该对称秘钥进行加密解密,完成整个HTTPS的流程。       

        工作流程简要如下所示:

1.当客户端访问Https网站时,服务端将自己的证书发送给浏览器,里面包含了网址、用于加密的公钥、以及证书颁发机构等信息。
2.客户端得到证书,进而去访问证书的颁发机构进行校验证书的合法性。如果合法,客户端则生成一个随机字符串用作后续通讯过程中的加密key,然后用证书的公钥机密,将随机生成的key和加密后的数据再发送到服务端。
3.服务端接收到key和加密的信息,通过私钥进行解密,比较是否一致性,如果一致,则使用该字符串作为后面的数据通讯加密的key,并且再向浏览器返回一串字符和加密的字符。
4.客户端接收这些数据过程和服务端一样,解密校验是否一样,如果一样,那么握手就结束了,后面就使用上面随机生成的key作为后续通讯的加密key。
5.注意事项:上述任何一个步骤失败都会终止该次握手。

 

2.6 单向证书

2.7 双向证书

2.8 HTTPS缺点

     增加访问耗时

 

3 Http与Https的区别

        区别如下所示:

从上图可以看出,如果没有SSL(Security Sockets Layer)安全套接层,Http直接和TCP进行通讯。SSL充当中间人进行处理安全。

1.Https协议需要到CA申请证书
2.Https是由SSL+Http协议构建的可进行加密传输,身份验证的网络协议,比http更安全
3.连接端口不同,HTTP使用80,HTTPS使用443
4.HTTPS密文传输,HTTP明文传输。

      SSL为网络通信提供安全及数据完整性的一种安全协议,是操作系统对外的API,SSL3.0之后更名为TLS,采用身份验证和数据加密保证网络通信的安全性和数据的完整性。

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luckyliuqs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值