1.http常见的状态码有那些?
2.http常见的header有那些?
3.什么是Restful Api?
4.描述一下http的缓存机制?
一.状态码分类
1xx 服务端请求成功
2xx 客户端请求成功 如200
3xx 临时重定向 如302 ,301永久重定向(如老域名不用了用新的域名,不会访问老域名)都是配合location,304资源未被修改(服务端告诉本地资源还有效)
4xx 客户端错误 如404资源未找到 ,403没有权限
5xx 服务端错误 如500,504网关超时
302 案例
二 http常见的header值
1.Request Headers(请求头)
Accept 浏览器可接收的数据格式
Accept-Encoding 浏览器可接收的压缩算法 如gzip 为了资源更小传输更快
Accept-Language 浏览器可接收的语言 zh-CN 中文
Connection:keep-alive 一次TCP连接重复使用
cookie 浏览器自带
host 域名
User-Agent 简称UA 浏览器信息及操作系统信息
Content-Type: application/json 发送请求的而数据格式(一般post请求才会发送一些数据,get请求一般是获取数据)
2.Response Headers(响应头,服务端返回的信息)
Content-Type: application/json 返回的数据格式
Content-Length: 154 返回数据的大小,多少字节
Content-Encoding 返回数据的压缩算法 如gzip
set-cookie
可自定义header :有些权限接口需要这样做认证
3.缓存相关的headers
1.强制缓存字段
cache-control:max-age强制缓存时间s no-cache不强制缓存 no-store不做缓存 private允许浏览器手机做缓存
Expires已被cache-control代替,cache-control优先级高
图解:
2.协商缓存
last-modified 资源最后的修改时间s
etag 资源的唯一标识 , etag优先高并且更精确
图解:
三 完整http缓存的机制
四 restful api是一种API设计方法
传统api设计:把每个url 当作一个功能(get获取资源,post新增资源或删除资源)
restful api设计:把每个url 当作一个资源(get获取资源,post新增资源,puth更新资源,delete删除资源)
如何设计restful api(尽量不要url加参数?pageIndex=2,多使用methods)
传统api url: /api/list?pageIndex=2(看起来像函数,把url打成一个功能)
restful api url: /api/list/2(唯一资源)看详情页 /api/item/2