http请求方法总结
get: 从服务器获取资源
post:在服务器创建资源
put:在服务器修改资源
delete:在服务器删除资源
注意:
post和put的最大区别,在于put具有幂等性。比如你调用post10次,他会创造10个资源,在服务器产生的影响是不一样的。
而put,调用10次,只要请求是一样的,那么他在服务器产生的影响是一样的。
http状态码详解
1xx:提供信息,101 协议切换,
2xx:成功
200:ok,get请求成功返回
201Lcreated已创建,通常post请求会返回
202 请求已经收到,比如创建订单,在服务端的开销比较大,一些异步请求会先返回202表示已经接收到请求。
203 非权威内容,表示原始服务器的内容在中间被修改过,比如中间有代替服务器
204:没有内容返回,常见的put操作,内容修改成功但是没有内容返回。
205:重置内容,比如用户在输入一个大的表单,服务器拿走了,但是希望前端重置一下,方便用户输入新的内容
206:服务端下发部分内容
3xx:重定向
301 永久转移,比如一些老网址的内容永久转移到新的网址上
303: see other 可以使用get方法在另一个url找到资源
304:没有修改,缓存。如果请求的内容没有变,web服务会返回一个304给浏览器,同时不会把资源真的返回,浏览器用缓存去展示。
305:需要代理。
307:临时重定向
308:永久重定向
面试题:301和308都是永久重定向,他们的差别?
共同点:资源被永久移动到新的地址
差异:客户端收到308请求后,之前是什么方法,那么之后也会沿用这个方法去请求新的地址。
而客户端收到301请求,不管之前是什么方法,统一会使用get去请求新的地址。
4xx:客户端错误,404访问资源不存在
400 请求格式错误
401:没有授权,基本会跳登录
402:请先付费,比如访问一些付费资源(基本没有人使用)
403:禁止访问
404:没有找到资源
405方法不被允许
406:服务端可以提供的内容和客户端期待的不一样,比如编码格式不同
5xx:服务端错误
500 内部服务器错误
501:没有实现,比如某个接口存在,但是后端没有实现
502:网关错误
503:服务不可用
504:网关超时
505:版本不支持。比如http的协议版本
注意:规范如此,但是多数服务端开发已经不遵循状态码,成功基本都是返回200,语义用返回的字段去定义。而错误基本都会返回400