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

2025js——面试题(8)-http

题目:

一、http常见的状态码有哪些?

状态码分类:

1XX 服务器收到请求

2XX 请求成功,如200

3XX重定向,如302

4XX客户端错误,如404

5XX服务端错误,如500

常见状态码:

200 成功

301永久重定向(配合location,浏览器自动处理)(域名到期出现的域名)

302临时重定向(配合location,浏览器自动处理)(返回302,然后进入新的地址)

304资源未被修改

404资源未找到

403没有权限

500服务器错误

504网关超时

二、http常见的header有哪些?

常见的Request Headers(客户端发请求到服务端)

1.Accept浏览器可接受的数据格式

2.Accept-Encoding 浏览器可接受的压缩算法

3.Accept-language浏览器可接受的语言。如zh-CN

4.Connection:keep-alive 一次TCP连接重复使用

5.cookie

6.Host:域名

7.user-Agent(简称UA)浏览器信息

8.Content-type发送数据格式,如application/json

常见的Response Headers(服务端返回到客户端)

1.Content-type返回数据格式,如application/json

2.Content-length 返回数据大小,多少字节

3.Content-Encoding 返回数据的压缩算法,如gzip

自定义header

缓存相关的header

Cache-ControlExpires
Last-Modified
Etag
If-Modified-Since
If-None-Match

三、什么是Restful API?

四、描述一下http的缓存机制?(重要)

关于缓存的介绍

完整的流程图

http缓存策略(强制缓存+协商缓存)

1.强制缓存:初次请求服务端设置cache-control

cache-control的值:

max-age:最核心的缓存有效期指令

no-cache:强制进入协商缓存,非 “不缓存”

no-store:完全禁止缓存,每次必请求服务器

指令是否允许本地缓存是否触发协商缓存服务器是否可能返回 304典型应用场景
max-age过期后触发是(资源未更新时)静态资源(图片、JS、CSS)
no-cache是(但需验证)每次请求都触发是(资源未更新时)频繁更新的动态资源(首页 HTML)
no-store否(完全不缓存)无(必须全量请求)否(必返回 200)敏感资源(支付页、隐私数据)

2.协商缓存:

服务端缓存策略

服务端判断客户端资源,是否和服务端资源一样

一致则返回304,否则返回200和最新的资源

协商缓存资源标识

在 Response Headers 中,有两种
Last-Modified 资源的最后修改时间
Etag 资源的唯一标识(一个字符串,类似人类的指纹)

                                                         Last-Modified

                                                

                                                                          Etag

Last-Modified 和 Etag区别
会优先使用 Etag
Last-Modified 只能精确到秒级

刷新操作方式。对缓存的影响

正常操作:地址栏输入url,跳转链接,前进后退等

手动刷新:F5,点击刷新按钮,右击菜单刷新

强制刷新:ctrl + F5

正常操作:强制缓存有效,协商缓存有效

手动刷新:强制缓存失效,协商缓存有效

强制刷新:强制缓存失效,协商缓存失效

总结:强制缓存 Cache-Control
协商缓存 Last-Modified和 Etag,304 状态码
完整的流程图

http://www.lryc.cn/news/587808.html

相关文章:

  • 第二章 基于新版Onenet搭建云服务(stm32物联网)
  • 【leetcode】326. 3的幂
  • 对偶原理与蕴含定理
  • SSE(Server-Sent Events)和 MQTT(Message Queuing Telemetry Transport)
  • 【工具】AndroidStudio修改中文语言汉化
  • 【2025/07/14】GitHub 今日热门项目
  • 直播推流技术底层逻辑详解与私有化实现方案-以rmtp rtc hls为例-优雅草卓伊凡
  • QML 常用控件(二)
  • vue中配置Eslint的步骤
  • Why C# and .NET are still relevant in 2025
  • lightgbm算法学习
  • Python----NLP自然语言处理(中文分词器--jieba分词器)
  • 《大数据技术原理与应用》实验报告一 熟悉常用的Linux操作和Hadoop操作
  • .NET控制台应用程序中防止程序立即退出
  • 2025年大数据、建模与智能计算国际会议(ICBDMIC 2025)
  • spring-ai-alibaba 接入Tushare查询股票行情
  • 【C++进阶】---- 多态
  • SpringBoot3整合“Spring Security+JWT”快速实现demo示例与Apifox测试
  • 鸿蒙开发NDK之---- 如何将ArkTs的类型转化成C++对应的类型(基础类型,包含部分代码解释)
  • 系统化构建产品开发体系
  • androidstudio 高低版本兼容
  • 机构参与度及其Python数据获取示例
  • 迁移学习:知识复用的智能迁移引擎 | 从理论到实践的跨域赋能范式
  • 【Canvas与五星】六种五星画法
  • MIPI DSI (一) MIPI DSI 联盟概述
  • 【leetcode】231. 2的幂
  • ASP.NET Core中数据绑定原理实现详解
  • Android模块化架构:基于依赖注入和服务定位器的解耦方案
  • iOS如何查看电池容量?理解系统限制与开发者级能耗调试方法
  • H.264编解码(NAL)