前端面试题系列之JavaScript面试题五(每天巩固一点点)

13、JavaScript 如何获取和设置 cookie?

cookie增删改,话不多说,直接上代码

/*创建cookie*/
function setCookie(name, value, expires, path, domain, secure) {
    var cookieText = encodeURIComponent(name) + '=' + encodeURIComponent(value);
    if (expires instanceof Date) {
        cookieText += '; expires=' + expires;
    }
    if (path) {
        cookieText += '; expires=' + expires;
    }
    if (domain) {
        cookieText += '; domain=' + domain;
    }
    if (secure) {
        cookieText += '; secure';
    }
    document.cookie = cookieText;
}
/*获取cookie*/
function getCookie(name) {
    var cookieName = encodeURIComponent(name) + '=';
    var cookieStart = document.cookie.indexOf(cookieName);
    var cookieValue = null;
    if (cookieStart > -1) {
        var cookieEnd = document.cookie.indexOf(';', cookieStart);
        if (cookieEnd == -1) {
            cookieEnd = document.cookie.length;
        }
        cookieValue = decodeURIComponent(document.cookie.substring(cookieStart +
            cookieName.length, cookieEnd));
    }
    return cookieValue;
}
/*删除cookie*/
function deleteCookie(name) {
    document.cookie = name + "= ; expires=" + new Date(0);
}

14、谈谈你对cache-control的理解?

网页的缓存是由 HTTP 消息头中的“Cache-control”来控制的,常见的取值有 private、no-cache、 max-age、 must-revalidate 等,默认为 private。Expires 头部字段提供一个日期和时间,响应在该日期和时间后被认为失效。允许客户端在这个时间之前不去检查(发请求),等同 max-age 的效果。但是如果同时存在,则被Cache-Control 的 max-age 覆盖。

Expires = "Expires" ":" HTTP-date

例如:

Expires: Mon, 06 Sep 2021 22:28:00 GMT (必须是 GMT 格式),如果把它设置为-1,则表示立即过期。Expires 和 max-age 都可以用来指定文档的过期时间,但是二者有一些细微差别

1.Expires 在 HTTP/1.0 中已经定义, Cache-Control:max-age 在 HTTP/1.1 中才有定义,为了向下兼容,仅使用 max-age 不够。

2. Expires 指定一个绝对的过期时间(GMT 格式),这么做会导致至少 2 个问题:

    2.1 客户端和服务器时间不同步导致 Expires 的配置出现问题。

    2.2 很容易在配置后忘记具体的过期时间,导致过期来临出现浪涌现象

3. max-age 指定的是从文档被访问后的存活时间,这个时间是个相对值(比如:3600s),相对的是文档第一次被请求时服务器记录的 Request_time(请求时间)

4. Expires 指定的时间可以是相对文件的最后访问时间(Atime)或者修改时间(MTime),而max-age 相对对的是文档的请求时间(Atime)

5. 如果值为 no-cache,那么每次都会访问服务器。如果值为 max-age,则在过期之前不会重复访问服务器。

15、说说你知道哪些常见的 HTTP 状态码?

100 Continue 继续,一般在发送 post 请求时,已发送了 http header 之后服务端将返回此信息,表示确认,之后发送具体参数信息

200 OK 正常返回信息

201 Created 请求成功并且服务器创建了新的资源

202 Accepted 服务器已接受请求,但尚未处理

301 Moved Permanently 请求的网页已永久移动到新位置

302 Found 临时性重定向

303 See Other 临时性重定向,且总是使用 GET 请求新的 URI

304 Not Modified 自从上次请求后,请求的网页未修改过

400 Bad Request 服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求

401 Unauthorized 请求未授权

403 Forbidden 禁止访问

404 Not Found 找不到如何与 URI 相匹配的资源

500 Internal Server Error 最常见的服务器端错误

502 Bad Gateway 是一种HTTP协议的服务器端错误状态代码,它表示作为网关或代理角色的服务器,从上游服务器(如tomcat、php-fpm)中接收到的响应是无效的。

503 Service Unavailable 服务器端暂时无法处理请求(可能是过载或维护)

看完如果对你有帮助,感谢点击下面的一键三连支持下!

我的个人订阅号(大叔学前端/dashu_fe),文章第一时间在公众号发布,感兴趣的可以关注下,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值