HTTP 协议
2021-03-24 15:02:50 0 举报
AI智能生成
前端面试_HTTP协议
作者其他创作
大纲/内容
HTTP 协议
HTTP 状态码
状态码分类
1xx 服务器收到请求2xx 请求成功,如 2003xx 重定向,如 3024xx 客户端错误,如 4045xx 服务端错误,如 500
常见状态码
200 请求成功301 永久重定向(配合 locaiton,浏览器自动处理)302 临时重定向(配合 location,浏览器自动处理)304 资源未被修改404 资源未找到403 没有权限500 服务器错误504 网关超时
Restful-API
methods
传统的 methods:get 获取服务器数据post 向服务器提交数据
现在的 methods:get 获取数据post 新建数据patch/put 更新数据delete 删除数据
一种新的 API 设计方法与传统 API 的区别
传统 API 设计:把每个 url 当做一个功能Restful API 设计: 把每个 url 当做一个唯一的资源
如何把 url 设计成一个资源?
尽量不用 url 参数
传统 API 设计: /api/list?pageIndex=2Restful API 设计: /api/list/2
用 method 表示操作类型
传统 API 设计:post /api/create-blogpost /api/update-blog?id=100get /api/get-blog?id=100
Restful API 设计:post /api/blog(创建)patch /api/blog/100(更新)get /api/blog/100(获取)
HTTP Headers
常见的 Request Headers
Accept 浏览器可接受的数据格式Accept-Encoding 浏览器可接收的压缩算法,如gzipAccept-Language 浏览器可接收的语言,如zh-CNConnection: keep-alive 一次 TCP 连接重复使用Cookie 每次 http 请求时都会带上Host 域名User-Agent 简称 UA,浏览器信息Content-type 发送数据的格式,如 application/json
常见的 Response Headers
Content-type 返回数据的格式,如 application/jsonContent-length 返回数据的大小,多少字节Content-Encoding 返回数据的压缩算法,如 gzipSet-Cookie 服务端需要通过该字段来修改浏览器中的 cookie
自定义 header
应用场景:有些 API 需要在 headers 里面加他们的秘钥
缓存相关的 headers
Cache-ControlExpiresLast ModifiedIf-Modified-SinceEtagIf-None-Match
HTTP 缓存
什么是缓存?
把一些没有必要重新获取的资源暂存在客户端
为什么需要缓存?
span style=\"font-size: inherit;\
哪些资源可以被缓存?
静态资源(js css img)
webpack 打包时为静态资源加上 hash,hash 是通过资源内容计算的,文件内容修改后会生成新的 hash(新的文件名)
强制缓存(Cache-Control)
在 Response Headers 中,由服务端决定要不要添加控制强制缓存的逻辑
Cache-Control 的值
max-age : 最长过期时间(秒)no-cache : 不用本地强制缓存,正常向服务端请求资源,由服务端决定缓存措施no-store (不常见): 不用本地强制缓存,也不用服务端的缓存措施(协商缓存),直接由服务端返回新资源private : 只允许最终用户缓存pubilc : 用户和中间的代理都能缓存资源
Expires
在 Response Headers 中,同为控制缓存过期,已被 Cache-Control 替代
协商缓存(对比缓存)
是服务器端缓存策略,不是将资源缓存在服务器端;服务器判断客户端资源,是否和服务端资源一样;一致则返回304,否则返回200和最新资源。
资源标识
在 Response Headers 中,有两种:Last-Modified 资源的最后修改时间Etag 资源的唯一标识
优先使用 Etag:Last-Modified 只能精确到秒级如果资源被重复生成,而内容不变,则 Etag 更精确
http 缓存 - 综述
缓存在客户端
刷新页面对 http 缓存的影响
HTTP 相关面试题
http 常见状态码有哪些?
http 常见的 headers 有哪些?
什么是 Resful API?
描述下 http 的缓存机制
0 条评论
回复 删除
下一页