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

发布于:2025-07-15 ⋅ 阅读:(26) ⋅ 点赞:(0)

题目:

一、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 状态码
完整的流程图


网站公告

今日签到

点亮在社区的每一天
去签到