当前位置: 首页 > news >正文

每日任务:HTTP状态码详解及强缓存与协商缓存的区别

1.HTTP中常见的状态码有哪些?

HTTP常见的状态码主要有以下几大类:

1XX:提示信息,协议处理的中间状态

2XX:请求成功

3XX:请求重定向

4XX:请求错误,一般是指发送请求的机器出现了问题

5XX:服务器错误,一般是指接受处理请求的机械出现了问题

200:表示客户端请求成功

201:创建了新资源。

204 :无内容,服务器成功处理请求,但未返回任何内容。

301:永久重定向

302: 临时重定向

304:请求的内容没有修改过,所以服务器返回此响应时,不会返回网页内容,而是使用缓存

401:请求需要身份验证

403:请求的对应资源禁止被访问

404:服务器无法找到对应资源

500:服务器内部错误

503: 服务不可用

2.什么是强缓存和协商缓存

强缓存协商缓存是HTTP缓存机制的两种类型,它们用于减少服务器的负担和提高网页加载速度。

强缓存是指浏览器在请求资源时,不会发送任何请求头,直接从本地缓存中读取资源,从而提高响应速度。常见的实现方式包括:

  1. Expires头部:指定资源过期时间,如果在过期时间之前再次请求该资源,浏览器将直接从缓存中读取资源。
  2. Cache-Control头部:可以指定资源的缓存策略,包括public、private、no-cache等,控制浏览器的缓存行为。

协商缓存是指浏览器在请求资源时,会发送一些请求到服务器,询问服务器资源是否已经发生改变,通过ETag或Last-Modified等HTTP响应头与服务器进行验证,以确定资源是否被修改。如果资源未发生改变,服务器将返回304状态码,告诉浏览器可以从缓存中读取资源,从而减少了网络带宽的使用,。常用的实现方式包括:

  1. Last-Modified/if-Modified-Since头部:浏览器在请求资源时,会将资源最好修改时间发送到服务器,服务器检查资源是否发生变化,如果没有发生变化,返回304状态码,否则返回新的资源。
  2. ETag/if-None-Match头部:服务器可以给每个资源分配一个唯一的标识符,浏览器在请求资源时,将该标识符发送到服务器,服务器检查资源是否发生变化,如果没有发生变化,返回304状态码,否则返回新的资源。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • EXO-chatgpt_api 解释
  • 常见的文心一言的指令
  • 力扣面试题(三)
  • .Net Core 微服务之Consul(三)-KV存储分布式锁
  • ARM编程指令一
  • STM32--HAL库--定时器篇
  • 堆的基本实现
  • mysql中提供的函数
  • 独孤思维:长线副业,越做越香
  • C语言常见字符函数和字符串函数精讲
  • connect的非阻塞模式
  • Discourse 如何通过终端工具访问 PGSQL
  • 多模态
  • Android APP 音视频(02)MediaProjection录屏与MediaCodec编码
  • java找不到符号解决办法
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • CentOS 7 修改主机名
  • EventListener原理
  • python docx文档转html页面
  • storm drpc实例
  • 理清楚Vue的结构
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 阿里云重庆大学大数据训练营落地分享
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • ​人工智能书单(数学基础篇)
  • "无招胜有招"nbsp;史上最全的互…
  • #微信小程序:微信小程序常见的配置传旨
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (6)设计一个TimeMap
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (LeetCode) T14. Longest Common Prefix
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (二)springcloud实战之config配置中心
  • (七)Knockout 创建自定义绑定
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (四十一)大数据实战——spark的yarn模式生产环境部署
  • (转)ABI是什么
  • (转)负载均衡,回话保持,cookie
  • (转载)深入super,看Python如何解决钻石继承难题
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .“空心村”成因分析及解决对策122344
  • .Net Core webapi RestFul 统一接口数据返回格式
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • [1525]字符统计2 (哈希)SDUT
  • [Android Pro] android 混淆文件project.properties和proguard-project.txt
  • [android] 天气app布局练习
  • [AutoSar]BSW_OS 02 Autosar OS_STACK
  • [C#] 基于 yield 语句的迭代器逻辑懒执行
  • [C#]科学计数法(scientific notation)显示为正常数字
  • [c++] C++多态(虚函数和虚继承)
  • [CISCN2019 华北赛区 Day1 Web2]ikun