首页 http缓存机制
文章
取消

http缓存机制

http缓存机制

  • 强缓存 Cach-Control (服务端设置)

Response Headers 设置 Cach-Control,例如 Cache-Control: max-age=31536000(单位是秒) 它有三个值:max-ageno-cachno-storeprivatepublic

  • 协商缓存 Last-ModifiedEtag304 状态码

Etag:当客户端请求服务端时,服务端将会返回资源和资源标识 Etag , 客端再次请求,Request Headers 带着 If-NonR-Match标识(Etag 唯一标识) 服务端接到请求处理如果资源没有更新变化,返回 304。如果资源发生更新,将返回新的资源和新的资源标识 Etag

Last-Modified:是资源最后修改的时间,再次请求,Request Headers 带着 If-Modified-Since,也就是 Last-Modified 返回的时间。 未需改则返回 304,否则返回资源和新的 Last-Modified

Last-Modified 和 Etag

  • 会优先使用 Etag
  • Last-Modified 只能精确到秒级
  • 如果资源被重复生成,而内容不变,则 Etag 更精确

http1 与 http2 区别

HTTP/1和HTTP/2是两个不同版本的HTTP协议,它们在一些方面有显著的区别。以下是它们之间的一些主要区别:

  1. 传输方式:
    • HTTP/1: 使用明文文本进行传输,基于文本的协议。
    • HTTP/2: 使用二进制格式传输,通过帧(frames)进行通信。
  2. 连接复用:
    • HTTP/1: 每个请求都需要建立一个新的连接,每个连接只能处理一个请求。
    • HTTP/2: 引入了多路复用,允许多个请求和响应在一个连接上同时传输,提高了性能。
  3. 头部压缩:
    • HTTP/1: 每个请求和响应的头部信息都需要重复传输,可能导致不必要的带宽占用。
    • HTTP/2: 使用HPACK头部压缩算法,减少了头部传输的大小。
  4. 流量控制:
    • HTTP/1: 依赖于TCP层面的流量控制。
    • HTTP/2: 引入了基于帧的流控制,允许更精确地控制每个流的数据传输。
  5. 服务器推送:
    • HTTP/1: 无法实现服务器主动向客户端推送资源。
    • HTTP/2: 支持服务器推送,服务器可以在客户端请求之前主动推送相关资源,提高性能。
  6. 安全性:
    • HTTP/1: 不提供任何加密措施,数据在传输过程中可能被窃听。
    • HTTP/2: 更鼓励使用加密,虽然不是强制的,但大多数实现都会使用TLS/SSL进行加密传输。

总体而言,HTTP/2的设计旨在提高性能和效率,通过引入多路复用、头部压缩、流量控制等机制,使得Web页面加载更快。这使得HTTP/2相对于HTTP/1来说在处理现代Web应用时更具优势。

http2 与 http3 区别

HTTP/2和HTTP/3是两个不同版本的HTTP协议,它们在一些方面有着显著的区别。以下是它们之间的一些主要区别:

  1. 底层传输协议:
    • HTTP/2: 使用二进制协议作为传输层,取代了HTTP/1.x中的文本格式。它基于Google的SPDY协议,并引入了多路复用,允许多个请求和响应在一个连接上同时传输。
    • HTTP/3: 引入了QUIC(Quick UDP Internet Connections)协议,是基于UDP(User Datagram Protocol)的协议,而不是TCP(Transmission Control Protocol)。QUIC提供更好的性能,尤其是在高延迟和丢包环境下。
  2. 连接建立:
    • HTTP/2: 使用单个复用的TCP连接。
    • HTTP/3: 使用QUIC,它允许多路复用,同时还提供更快的连接建立和更好的性能。
  3. 头部压缩:
    • HTTP/2: 使用HPACK头部压缩算法,减少了头部传输的大小。
    • HTTP/3: 同样使用HPACK,但在QUIC的基础上,由于QUIC自身对头部的支持,可以更好地处理头部压缩。
  4. 流控制:
    • HTTP/2: 使用基于帧的流控制。
    • HTTP/3: 则使用QUIC的流控制机制,这在一些方面更为灵活。
  5. 错误处理:
    • HTTP/2: 错误处理依赖于TCP连接的状态。
    • HTTP/3:QUIC上实现,能够更好地处理连接切换和移动网络等情况。

总体而言,HTTP/3旨在通过引入QUIC协议解决一些HTTP/2中存在的性能瓶颈,并提供更好的用户体验。然而,具体的性能优势可能会受到网络环境和具体实现的影响。

WevSocket 和 HTTP 区别

  • WebSocket 协议名是 ws:// 可双端发起请求
  • WebSocket 没有跨域限制
  • 通过 sendonmessage 通讯(HTTP 通过 reqres
  • ws 可升级为 wss (像 https

HTTP 状态码

  • 1xx 服务器收到请求
  • 2xx 请求成功, 如 200
  • 3xx 重定向,如 302
    • 301 永久重定向
    • 302 临时重定向
  • 4xx 客户端错误,如 404
  • 5xx 服务端错误, 如 500
转摘分享请注明出处

css如何开启硬件加速

v8引擎代码解析流程