http&https

http1.0/http1.1/http2的区别

HTTP1.0

  • 只提供简单的认证,用户名和密码都没有进行加密操作,不安全,很
    容易被窃取;
  • 只支持短连接,每次传输数据前都需要建立连接,传输数据后断开连接,再次传输数据时需要再重新建立连接,性能很低;
  • 只用header中的if-Modified-since和Expires来作为缓存失效的标准;
  • 不支持断点续传,也就是每次传输都只能传输整个页面和数据;
  • 认为一个计算机只能绑定一个ip,所以在请求消息中并没有加入主机名。

HTTP1.1

  • 使用了摘要算法来进行安全检测;
  • 默认为长连接,可以通过Connection中的keep-alive来设置,这样只会在第一次传输的时候建立连接,在传输完的时候断开连接,提高了性能;
  • 还增加了很多缓存失效的标准,比如if-Match,if-None-Match;
  • 支持断点续传,可以每次只传输一部分,可以通过range来设置;
  • 使用了虚拟网络,一台物理服务器上可以有多台主机,这些主机共享一个ip地址。

HTTP2.0

  • 使用了头部压缩,因为头部中可能会出现很多字段,而请求体中的内容可能就只有几个字节,就会出现头部偏重的现象,使用了HPACK来进行头部压缩;
  • 使用了二进制数据,使用了更靠近tcp/ip的二进制数据格式,是解析的效率大大提高;
  • 更注重安全,安全已经得到很大的重视,HTTP2.0一般用在HTTPS上;
  • 多路复用,每一个请求都可以用作连接共享,一个请求对应一个ip,一个连接就可以有多个请求。

常见状态码

  • 200:请求成功。
  • 301:永久移动,所请求的资源已经永久的移动到新的URI中,返回的信息中包含着新的URI,浏览器会自动定位到新的URI,以后所有的请求都需要用新的URI。
  • 302:临时移动,还用以前的URI。
  • 307:重定向。
  • 304:未改变,返回此状态码并不会返回任何信息。浏览器一般会缓存访问过的资源,然后给一个头部信息,告诉服务器只返回给定日期之后改变的资源。
  • 400:语法错误。
  • 401:未登录,需要进行身份验证。
  • 403:登录了但是权限不够,拒绝访问,比如不是VIP,充的钱太少了。
  • 404:找不到。
  • 405:不支持此方法。
  • 500:服务器在执行过程中出错。
  • 502:网关或代理服务器,未能从上游服务器获得有效资源。
  • 504:网关或代理服务器,未能及时从上游服务器或辅助服务器获得资源。

http和https的区别

  • http默认端口为80;https默认端口为443。
  • http都是明文传输的,在传输路途中很容易被窃取和篡改,不安全;https在传输前加密,在接收后解密,是比较安全的。
  • https需要向CA机构认证,一般需要费用。

对称加密

  • 加密和解密用的是同一把秘钥,这把秘钥既能加密也能解密,加密和解密的速度比较快,这把秘钥可以任意发布,在客户端可能会被窃取。

非对称加密

  • 将钥匙分成公钥和私钥,公钥在客户端,私钥在服务器,公钥加密的数据只能由私钥解密,私钥加密的数据只能由公钥来解密,效率可能不太高,但是安全。

https建立连接过程

https在第一次传输的时候用的是非对称加密,之后用的是对称加密的方式。

  • 客户端向服务器发送请求,请求建立SSL连接;
  • 服务器收到客户端消息后,将服务器网站的证书包含公钥发送给客户端;
  • 客户端校验证书的合法性,包括证书的有效期,是否是自己请求的网站的证书等一些信息,如果校验成功,就随机生成一个会话秘钥,然后用公钥进行加密,发送给服务器;
  • 服务器用私钥对数据进行解密就可以获得客户端生成的秘钥,然后将要发送的数据用会话秘钥进行加密,返回给客户端;
  • 之后客户端和服务器都用这个会话秘钥来进行加密解密。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值