Http code :304 代表什么?你知道多少?

网络 网络管理
HTTP 状态码 304 Not Modified 是一个无内容(no-content)的状态码,表示客户端发送了一个条件性请求(conditional request),并且服务器发现自从上次请求以来资源并没有改变,因此返回这个状态码而不是重复传输相同的数据。

图片图片

1. http code 304 Not Modified

HTTP 状态码 304 Not Modified 是一个无内容(no-content)的状态码,表示客户端发送了一个条件性请求(conditional request),并且服务器发现自从上次请求以来资源并没有改变,因此返回这个状态码而不是重复传输相同的数据。

当客户端(通常是浏览器)向服务器请求一个资源时,如果之前已经缓存过这个资源,那么它会在请求头中包含一些信息,比如 If-Modified-Since 或 If-None-Match,以询问服务器这个资源是否已经被修改。

  • If-Modified-Since: 客户端告诉服务器自从某个日期之后它就没有获取过这个资源了。
  • If-None-Match: 客户端告诉服务器它有一个资源的特定版本(通过 ETag 标识),并询问这个版本是否仍然有效。

如果服务器发现请求的资源自上次请求以来没有变化,它就会发送一个 304 Not Modified 响应,并且不包含资源的实际内容。这样可以减少带宽消耗,提高性能,因为客户端可以直接使用其缓存的副本。

1.1. 示例

1.1.1. 客户端请求头示例:

GET /example.html HTTP/1.1
Host: www.example.com
If-Modified-Since: Tue, 15 Nov 2022 12:45:26 GMT

1.1.2. 服务器响应头示例:

HTTP/1.1 304 Not Modified
Date: Tue, 28 Oct 2024 12:30:00 GMT
Last-Modified: Tue, 15 Nov 2022 12:45:26 GMT
Cache-Control: max-age=3600

在这个例子中,客户端提供了 If-Modified-Since 头部,表明它有一个自从指定日期以来没有更新过的资源副本。服务器检查了这个资源并确认自那个日期后资源没有被修改过,因此返回了 304 Not Modified 响应。

对于前端开发者来说,理解 304 Not Modifnce 响应可以帮助优化应用性能,尤其是在网络请求频繁的情况下。合理利用 HTTP 缓存机制能够显著减少数据传输量,提升用户体验。

责任编辑:武晓燕 来源: 前端爱好者
相关推荐

2021-05-30 09:25:48

HttpETag 网络协议

2020-10-12 14:31:16

HTTP之200还是3

2022-08-11 08:46:23

索引数据结构

2024-05-06 00:30:00

MVCC数据库

2023-05-05 09:04:41

文本数据ChatGPT

2020-04-29 14:30:35

HTTPHTTPS前端

2022-03-23 15:36:13

数字化转型数据治理企业

2023-08-02 08:14:33

监控MTS性能

2020-10-13 14:15:22

HTTPHTTP请求方法

2018-01-02 09:31:12

大数据数据互联网

2019-05-08 16:00:48

人工智能人脸识别刷脸

2024-10-28 12:46:22

2024-09-26 14:48:35

SpringAOP范式

2023-08-28 07:39:49

线程调度基本单位

2021-07-26 23:57:48

Vuex模块项目

2023-09-18 08:56:57

StringJava

2019-07-04 05:22:02

物联网设备物联网IOT

2024-03-20 00:04:46

TypeScriptas const类型断言

2018-08-24 06:56:17

2024-08-15 09:41:18

点赞
收藏

51CTO技术栈公众号