前端需要掌握的http面试题

6 篇文章 0 订阅
6 篇文章 0 订阅

- http 常见的状态码有哪些?

状态码分类:
1xx 服务器收到请求
2xx 请求成功
3xx 重定向
4xx 客户端错误
5xx 服务端错误
常见状态码:
200 成功, 301永久重定向, 302临时重定向,304资源未被修改(走缓存)
404资源未找到,403没有权限,500服务器错误,504网关超时
关于协议和规范:就是一个约定,跟着执行,不要违反规范
-http methods
传统methods:get获取数据,post提交数据
现在的methods:get获取数据、post新建数据、patch/put更新数据、delete删除数据

- 常见的header

  • request headers
    Accept 浏览器可接收的数据格式
    Accept-Encoding 浏览器可接收的压缩算法,如gzip
    Accept-language
    Connection:keep-alive 一次TCP连接重复使用
    Cookie
    Host
    User-Agent浏览器信息
    Content-type 发送数据的格式,如application/json
  • respons headers
    Content-type
    content-length 返回数据大小
    content-Encoding 返回数据压缩算法 ,如gzip
    set-cookie
    cache-control 相关缓存
  • 自定义header
headers:{"...":"..."}

- restful API

一种新的api设计方法(早已推广使用)
传统API设计:把每个url当做一个功能
restful:把每个url当做唯一的资源
尽量不使用url参数
如:
传统api:/api/list?pageIndex=2 ,使用methods表示操作类型
restful:api/list/2
post请求 /api/blog 创建一个blog
patch请求 /api/blog/100 更新一个blog100
get请求 /api/blog/100 获取blog100

- 描述一下http缓存机制

  • 关于缓存
    哪些资源可以被缓存? 静态资源(js,css,img)。html不可以!因为经常被替换模板。webpack中contentHash 计算文件中若有改变则改变hash的值
  • 缓存策略
  1. 强制缓存:
    初次请求,response headers 中通过cache-control控制强制缓存的逻辑
    再次请求,浏览器会在本地缓存里找
    max-age 过期时间
    no-cache 不用本地强制缓存
    no-store 即不用本地缓存也不用服务端缓存
    private 只允许最终用户做缓存
    public 允许中间代理做缓存
    expires:已经被catch-control代替
  2. 协商缓存(对比缓存)
    服务端缓存策略,由服务端来判断一个资源是否被缓存
    服务端判断客户端资源,是否和服务端资源一样一致则返回304,否则返回200和最新的资源
    在这里插入图片描述
    资源标识:
    在response headers中 有两种
    last-modified资源的最后修改时间
    etag资源的唯一标识,类似于人的指纹
    优先使用etag
    last-modified 只能精确到秒
    资源被重复生成,而内容不变,则etag更精准
    在这里插入图片描述

在这里插入图片描述

  • 刷新操作方式,对缓存的影响
    正常操作:强制缓存有效,协商缓存有效
    手动刷新:强制缓存失效,协商缓存有效
    强制刷新:全部失效

从输入url到页面加载完成发生了什么?
1、浏览器的地址栏输入URL并按下回车。
2、浏览器查找当前URL是否存在缓存,并比较缓存是否过期。
3、DNS解析URL对应的IP。
4、根据IP建立TCP连接(三次握手)。
5、HTTP发起请求。
6、服务器处理请求,浏览器接收HTTP响应。
7、渲染页面,构建DOM树。
8、关闭TCP连接(四次挥手)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值