HTTP.

ops/2025/2/22 4:09:57/

HTTP主要讲一下状态码和缓存机制

1xx 类状态码属于提示信息,是协议处理中的一种中间状态,如http升级为websocket,会提示1xx

2xx 类状态码表示服务器成功处理了客户端的请求

  • 「200 OK」是最常见的成功状态码
  • 「204 No Content」也是常见的成功状态码,但没返回任何数据
  • 「206 Partial Content」服务器成功处理了部分请求,并返回了资源的一部分(HTTP 分块下载或断点续传)

3xx 类状态码表示客户端请求的资源发生了变动,需要客户端用新的 URL 重新发送请求获取资源,也就是重定向

  • 「301 Moved Permanently」表示永久重定向,需改用新的 URL 再次访问
  • 「302 Found」表示临时重定向,暂时需要用另一个 URL 来访问
  • 「304 Not Modified」表示客户端请求的资源没有变化,可以直接使用本地缓存,而无需重新下载

4xx 类状态码表示客户端发送的报文有误,服务器无法处理

  • 「400 Bad Request」表示客户端请求的报文有错误(笼统的错误)
  • 「403 Forbidden」表示客户端没有权限访问该资源
  • 「404 Not Found」表示请求的资源在服务器上不存在

5xx 类状态码表示客户端请求报文正确,但是服务器处理时内部发生了错误,属于服务端的错误码

  • 「500 Internal Server Error」表示服务端内部出现问题(笼统的错误)
  • 「501 Not Implemented」表示客户端请求的功能还没有实现
  • 「502 Bad Gateway」通常是服务器作为网关或代理时返回的错误码,表示服务器自身工作正常,访问后端服务器发生了错误
  • 「503 Service Unavailable」表示服务器当前很忙,暂时无法响应客户端

HTTP缓存:有两种实现方式

  • 强制缓存是指只要浏览器判断缓存没有过期,则直接使用浏览器的本地缓存
    • 当浏览器第一次请求访问服务器资源时,服务器会在返回这个资源的同时,在 Response 头部加上 Cache-ControlExpires
      Cache-Control: max-age=3600
      Expires: Wed, 21 Oct 2025 07:28:00 GMT   (Cache-Control 优先级更高)
    • 浏览器再次请求访问服务器中的该资源时,会先通过请求资源的时间与 Cache-Control 中设置的过期时间大小,来计算出该资源是否过期,如果没有,则使用该缓存,否则重新请求服务器
    • 服务器再次收到请求后,会再次更新 Response 头部的 Cache-Control
  • 协商缓存是指浏览器在请求资源时,会与服务器进行协商,决定是否使用本地缓存
    • 浏览器发出请求时,会携带一些标识信息,如If-Modified-Since(在某时起该资源是否被修改过)、ETag标识某个资源

                If-Modified-Since: Wed, 21 Oct 2025 07:28:00 GMT
                ETag: "abcdef12345"

  •         服务器根据这些信息判断缓存是否有效:
    •         如果缓存有效,服务器返回304 Not Modified,浏览器使用缓存
      • 如果缓存无效,服务器返回新的资源和更新的缓存信息

http://www.ppmy.cn/ops/160419.html

相关文章

DCA考试备考

目录标题 考试内容指南一、考试环境准备(一)创建单实例数据库(二)管理数据库对象 二、数据操作(一)数据导入(二)参数修改 三、备份与恢复(一)备份&#xff08…

IB网络错误检查工具ibqueryerrors

ibqueryerrors 是一个用于查询 InfiniBand 网络中错误统计信息的工具。它可以帮助网络管理员识别和诊断网络问题,如丢包、重传和其他通信错误。这个工具通常是 InfiniBand 管理软件包的一部分,例如 OpenSM(Open Subnet Manager)。…

C++ Primer 库-IO类

欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…

基于Flask框架的食谱数据可视化分析系统的设计与实现

【Flask】基于Flask框架的食谱数据可视化分析系统的设计与实现 (完整系统源码开发笔记详细部署教程)✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 在当今数字化时代,信息可视化已成为一种高效的数据理解和传播手段。…

【分布式理论11】分布式协同之分布式事务(一个应用操作多个资源):从刚性事务到柔性事务的演进

文章目录 一. 什么是分布式事务?二. 分布式事务的挑战三. 事务的ACID特性四. CAP理论与BASE理论1. CAP理论1.1. 三大特性1.2. 三者不能兼得 2. BASE理论 五. 分布式事务解决方案1. 两阶段提交(2PC)2. TCC(Try-Confirm-Cancel&…

unity学习46:反向动力学IK

目录 1 正向动力学和反向动力学 1.1 正向动力学 1.2 反向动力学 1.3 实现目标 2 实现反向动力 2.1 先定义一个目标 2.2 动画层layer,需要加 IK pass 2.3 增加头部朝向代码 2.3.1 专门的IK方法 OnAnimatorIK(int layerIndex){} 2.3.2 增加朝向代码 2.4 …

云原生基础 -- Load Balancer

本文将介绍 Load balancer 的意义、原理以及分类 意义 Load balancer 即网络负载均衡,是将流量进行统一分配均衡,分到到一组后端服务的应用。对部署负载均衡的应用来说,具有以下意义: 可用性:所有流量只分发到单台后…

新型基于Go语言的恶意软件利用Telegram作为C2通信渠道

研究人员发现了一种新型后门恶意软件,使用Go语言编写,并利用Telegram作为其命令与控制(C2)通信渠道。尽管该恶意软件似乎仍处于开发阶段,但它已经具备完整的功能,能够执行多种恶意活动。这种创新的C2通信方…