Http知识

一、http协议

目前存在HTTP1.1(当前广泛运用的版本)、HTTP2.0和HTTP3.0协议,有以下的优点和缺点

1. HTTP1.1

优点:默认支持长连接,即在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟;

缺点:首部是明文的(cookies、token等之类),没有进行压缩;可能会造成http对头阻塞:当顺序发送的请求序列中的一个请求因为某种原因被阻塞时,在后面排队的所有请求也一并被阻塞,会导致客户端迟迟收不到数据。

2. HTTP2.0

优点:

  • 多路复用:所有的相同域名请求都通过同一个 TCP 连接并发完成,减少了等待时间;
  • 首部压缩,报文变为二进制;提供更快的传输速度;
  • 支持服务器推送,可以将客户端所请求的相关资源推送给客户端,减少客户端发送请求的次数和等待时间。(比如浏览器只请求了index.html,但是服务器把index.html、style.css、example.png全部发送给浏览器。)

缺点:存在兼容性问题和安全性问题

3. HTTP3.0:基于QUIC和UDP协议,提高了通信的平均速度

二、nginx配置http2.0

升级到Http2.0会使某些请求响应速度变快

nginx在nginx.conf配置http2.0

listen  443 ssl http2;

二、https

是在http协议的基础上用TLS/SSL进行加密(对称加密:各自都有公钥私钥,非对称加密:客户端有公钥,服务端有公钥和私钥)。SSL证书是保存在源服务器的数据文件,需要向CA申请,包括了特定的公钥私钥等信息,可以确保客户端和服务器身份的真实性和可信度。

三、http缓存:为了减少重复的网络请求,一般js、css、image会被缓存

1. 强制缓存:第一次请求,服务器会返回Cache-Control字段,告诉浏览器最大缓存过期时间max-age或者no-cache,比如地图请求max-age:0,public(可以被任意请求缓存),no-cache(可以在客户端存储资源,每次都必须去服务端做新鲜度校验,来决定从服务端获取新的资源(200)还是使用客户端缓存(304))

2. 协商缓存:第一次请求,服务器会返回Last-Modified(资源的最后修改时间)和ETag(资源的唯一标识,字符串),浏览器再次请求的时候会带上if-Modified-Since或if-None-Match去请求,服务器会进行比较,如果一致则304,从客户端缓存获取资源,如果不一致,则返回200,带上新的标识和资源;优先使用Etag,Last-Modified只能精确到秒,但是很多请求可能是毫秒级的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值