http状态码
状态码分类
1xx服务器收到请求;2xx请求成功,如200;3xx重定向,如302;4xx客户端错误,如404;5xx服务端错误,如500。
常见状态码
200成功;301永久重定向(老地址不用了,永久更换)(配合location,浏览器自动处理);302临时重定向(只是某次)(配合location,浏览器自动处理);304资源未被修改;404资源未找到;403没有权限;500服务器错误;504网关超时
关于协议和规范 http methods
传统的methods
get获取服务器的数据;post向服务器提交数据。
现在的methoods
get获取数据,post新建数据,patch/put更新数据,delete删除数据。
Restful API
是一种新的API设计方法。传统API设计:把每个url当作一个功能;Restful API设计:把每个url当作一个唯一的资源/id
如何设计成一个资源?尽量不用url参数;用method表示操作类型。
不使用url参数
传统API设计:/api/list?id=100;Restful API设计:/api/list/2
用method表示操作类型(传统API设计;Restful API设计)
post请求:/api/create-blog;/api/blog
patch请求:/api/update-blog?id=100;/api/blog/100
get请求:;/api/get-blog?id=100/api/blog/100
http headers
Request Headers(请求头):Accept浏览器可接受的数据格式;Accept -Encoding浏览器可接收的压缩算法,如gzip;Accept-Language浏览器可接收的语言,如zh-CN;Connection:keep-alive一次TCP连接(和服务端的连接)重复使用;cookie(同域每次请求服务器的时候都会把cookie带上);Host(请求的域名);User-Agent(简称UA)浏览器信息;Content-type发送数据的格式,如application/json;Cache-Control缓存控制
Response Headers(响应头):Content-type返回数据的格式,如application/json;Content-length返回数据的大小,多少字节;Content-Encoding返回数据的压缩算法,如gzip;Set-Cookie设置cookie
缓存相关的headers
自定义header
http缓存
关于缓存
静态资源可以被缓存(js css img)
http缓存-强制缓存
请求服务器后把数据缓存到本地,通过Cache-Control控制在本地的缓存。Cache-Control:在响应头中,可控制强制缓存的逻辑,可以控制缓存的时间,最长为一年。
http缓存-协商缓存(对比缓存)
服务端缓存策略:服务端判断资源能不能用缓存的内容;服务端判断客户端资源,是否和服务端资源一样,一致则返回304,否则返回200和最新的资源,可使用资源标识。
资源标识
在Response Headers中有两种,Last-Modified资源的最后修改时间和Etag资源的唯一标识(一个字符串,类似人的指纹).会优先使用Etag,Last-Modified只能精确到秒级,如果资源被重复生成,而内容不变,则Etag更精确。