1、http 哪些接口是幂等的
HTTP Method | Semantics | Idempotent | Safe |
---|---|---|---|
OPTIONS | 获取服务器信息 | yes | yes |
GET | 获取资源 | yes | yes |
HEAD | 请求资源头部信息 | yes | yes |
PUT | 更新资源信息 | yes | no |
POST | 创建资源 | no | no |
DELETE | 删除资源 | yes | no |
PATCH | 更新资源部分信息 | no | no |
- OPTIONS方法常用于获取服务器信息,不会对资源产生影响,也不会对资源进行修改,因此它是幂等的也是安全的;OPTIONS方法最常见的场景是在浏览器的跨域请求中,如果浏览器发起的是一个跨域访问的API(不论是GET方法还是POST方法),再真正发送业务的GET或POST方法之前会发送一个OPTIONS方法从服务端获取信息,从服务器返回的信息中得知该请求是否支持跨域访问,从而决定下一步是否能成功发送真正的业务请求。
- HEAD方法用于请求资源的头部信息,不会对资源产生影响,也不会对资源进行修改,因此它是幂等的也是安全的。
- GET方法用于获取资源信息,虽然可能每次返回的结果都不相同,但是GET方法本身不会对资源产生影响,在RESTFul语义里GET方法也不会修改资源,因此它是幂等的,也是安全的。
- PUT方法在RESTFul语义里表示对资源进行全量更新,因此调用1次或N次的结果都是一致的,所以它是幂等的,但不是安全的。
- DELETE方法用于删除资源,调用1次或N次的结果都是相同的,因此是幂等的,但不是安全的。
- POST方法在RESTFul语义里表示新建资源,显然调用1次与调用N次的结果不同(调用1次新建1个资源,调用N次新建N个资源),因此不是幂等的,同时也不是安全的。
- PATCH方法在RESTFul语义里表示对资源的局部更新,因此不能保证调用1次与调用N次的结果相同(如:被更新的资源某个属性随着不同的调用次数在变化),所以不是幂等的,同时也不是安全的。
2、go如何查看协程
3、go如何定位内存泄漏
4、go如何定位协程泄漏
5、zk 如何保证ap,etcd如何保证cp,如果想要在zk上实现cp 应该如何处理
6、如果自己用epoll写消息处理,使用流程是啥
7、k8s中一个消息从一个pod到另一个pod流程是啥
8、http2.0和1.x的区别,1.x 要保证高并发如何处理
9、simplerpc和streamrpc差别及原理