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差别及原理