当前位置: 首页 > 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.dtcms.com/a/279398.html

相关文章:

  • Linux 系统下的 Sangfor VDI 客户端安装与登录完全攻略 (CentOS、Ubuntu、麒麟全线通用)
  • 程序跑飞是什么?
  • 核电概念盘中异动,中核科技涨停引领板块热度
  • 物联网技术促进能量收集创新应用落地
  • 第一章编辑器开发基础第一节绘制编辑器元素_4输入字段(4/7)
  • 【一维 前缀和+差分】
  • 互斥锁与同步锁
  • IIS错误:Service Unavailable HTTP Error 503. The service is unavailable.
  • Unity Shader 预热与缓存优化
  • Unity中HumanBodyBones骨骼对照
  • 卡在“pycharm正在创建帮助程序目录”
  • 笔试——Day6
  • 达梦国产数据库安装
  • React Hook 详解:原理、执行顺序与 useEffect 的执行机制
  • 切比雪夫多项式
  • leetcode 1290. 二进制链表转整数 简单
  • C++类模版与友元
  • 进程、线程、协程
  • windows内核研究(进程与线程-进程结构体EPROCESS)
  • Django基础(一)———创建与启动
  • 【反转链表专题】【LeetCode206.反转链表】【LeetCode25.K个一组翻转链表】【LeetCode234.回文链表】
  • Spring Boot 自带的 JavaMail 集成
  • android Perfetto cpu分析教程及案例
  • 5G 到 6G通信技术的革新在哪里?
  • 腾讯云和火山云优劣势对比
  • 电力协议处理框架C++版(三)
  • CA-IS3082W 隔离485 收发器芯片可能存在硬件BUG
  • LTspic下载,帮助及演示电路
  • sfe_py的应力云图计算与显示step by step
  • 暑期自学嵌入式——Day02(C语言阶段)