前端面试宝典总结(来源牛客)
- 介绍知道的htpp状态码
- 强缓存和协商缓存
- 前端优化
- 输入url到页面加载显示完成发生了什么?
- get和post的区别
介绍知道的htpp状态码
100 Continue – 继续。客户端应继续请求
101 Switching Protocols – 切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议
200 OK – 请求成功。一般用于get请求和post请求
201 Created – 已创建。成功请求并创建了新的资源
202 Accepted – 已接受。已经接受请求,但未处理完成
203 Non-Authoritative Infomation – 非授权信息。请求成功。但返回的meta信息不在原始的服务器上,而是一个副本
204 No Content – 无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可保证浏览器继续浏览该文档
205 Reset Content – 重置内容,服务器处理成功,用户终端(例如:浏览器)应该重置文档视图,可通过此状态码重置表单域
206 Partial Content – 部分内容,浏览器处理了部分get请求
300 Multiple Choices – 多种选择,请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端选择
301 Moved Permanently – 永久移动,请求的资源已被永久的移动到新URL,返回信息会包括新的URL,浏览器会自动定向到新的URL,今后任何新的请求都应使用新的URL代替
302 Found – 临时移动,与301类似,但资源只是临时被移动,客户端应继续使用原来的URL
303 See Other – 查看其他地址。与301类似。使用get和post请求查看
304 Not Modified – 未修改。所请求的资源未修改,服务器返回此状态码,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回指定日期之后修改的资源
305 Use Proxy – 使用代理。所请求的资源必须通过代理访问
307 Temporary Redirect – 临时重定向。与302类似,使用get请求重定向
400 Bad Request – 客户端请求的语法错误,服务端无法理解
401 Unauthorized – 请求要求用户的身份验证
402 Payment Required – 保留,将来使用
403 Forbidden – 服务端理解客户端的请求,但是拒绝执行此请求
404 Not Found – 服务器无法根据用户端的请求找到资源(网页)
405 Method Not Allowed – 客户端请求的方法被禁止
406 Not Acceptable – 服务器无法根据客户端请求的内容特性完成请求
407 Proxy Authentication Required – 请求要求代理的身份验证,与401类似,但请求者应当使用代理进行授权
500 Internal Server Error – 服务器内部错误,无法完成请求
501 Not Implemented – 服务器不支持请求的功能,无法完成请求
502 Bad Gateway – 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应
503 Service Unavailable – 由于超载或者系统维护,服务器暂时无法处理客户端的请求,延时的长度可包含在服务器的Retry-After头信息中
504 Gateway Time-out – 充当代理或者网关的服务器,未及时从远端服务器获取请求
505 HTTP Version not supported – 服务器不支持请求的http协议的版本,无法完成处理
强缓存和协商缓存
缓存分为两种:强缓存和协商缓存,根据响应的header内容来决定
| 获取资源形式 | 状态码 | 发送请求到服务器 |
---|
强缓存 | 从缓存取 | 200 (from cache) | 否,直接从缓存中取 |
协商缓存 | 从缓存取 | 304 (not modified) | 是,通过服务器告知缓存是否可用 |
前端优化
1.降低请求量:合并资源,减少http请求次数,minify / gzip压缩,webP,lazyLoad
2.加快请求速度:预解析DNS,减少域名数,并行加载,CDN分发
3.缓存:http缓存请求,离线缓存minifest,离线数据缓存localStorage
4.JS/CSS优化:加载顺序,服务端渲染
输入url到页面加载显示完成发生了什么?
1.DNS解析
2.TCP连接
3.发送http请求
4.服务器发送请求并返回http报文
5.浏览器解析渲染页面
6.连接结束
get和post的区别
GET - 从指定的资源请求数据
POST - 向指定的资源提交需要被处理的数据
GET:不同的浏览器和服务器不同,一般限制在2~8k之间,更加常见的是1k以内
GET产生一个TCP数据包;POST请求产生两个TCP数据包
对于GET请求的方式,浏览器会把header和data一并发送出去,服务器响应200
POST请求,服务器先发送header,服务器响应100 continue后,继续发送data,服务器响应200