2021年前端基础面试题 13-14 存储和http

3种存储

cookie 主要是设计用来做server和浏览器通讯,所以并不适合做本地存储
缺点:最大容量4k,每次http请求都会带上,使用document.cookie =”方式修改!api太简陋
localstorage 和 sessionstorage 每个域名最大5m,不会放入hhtp请求中,使用setItem(使用方便

http状态码

1xx 服务端收到请求
2xx 请求成功
3xx 重定向
4xx 客户端错误
5xx 服务端错误

常见的状态码

200 成功
301 永久重定向
302 临时重定向
304 资源未被修改
404 未找到
403 无权限
500 错误
504 超时

http methods

get 查
post 增
patch put 改
delete 删

restful api

相对于传统的api设计, restful不会把url设计成一个功能,而是一个资源。
例如restful不使用url参数
api/list?index=2
api/list/2

常见的header

request header

accept 接受的数据格式
accept-encoding 接受的压缩格式如gzip
accept-language
connection keep-alive
cookie
host
user-agent
content-type application/json

response header

content-type application-json
content-length
content-encoding 服务器返回的压缩格式
set-cookie 服务器通过这个来设置cookie

http缓存

通常静态资源都会被缓存,比如js,css,images 。
为了避免静态资源被缓存通常在webpack打包时会在静态资源文件名后面加上hash字符串,例如index.3hjdjyu73hd8.js

强制缓存

服务器会在response header之中返回catch-control 来控制缓存的逻辑,例如max-age=3500000(秒)
no-catch 客户端无需缓存
no-store 客户端和服务器都不缓存,不常见
expires 是老标准,已经被catch-control取代

协商缓存

服务端判断请求的资源是否需要缓存,例如发现请求资源没有变化,则返回304告诉客户端无需请求。
服务端通过下发资源标识给客户端,客户端下次访问的时候带上资源标识返回给服务端。服务端再根据资源标识来判断此资源是否过期。
客户端下发资源标识分为两种:
last-modified 资源最后修改时间(秒)
e-tag 唯一标识 优先级最高
对应客户端请求的资源标识
if-modified-since
if-none-match

本站文章如未注明均为原创 | 文章作者:刘晓帆 | 转载请注明来自:前端印象

发表评论

邮箱地址不会被公开。 必填项已用*标注

浏览量:217 次浏览