HTTP中的方法

最近温习Http的时候看到方法这里,发觉又遗忘了很多。我们日常生工作中遇到最多的是用Get和Post。然而Http1.1中明确规定的方法还有几种。而且掌握每种方法的具体含义也有助于我们更好的定义接口,以及前端写页面请求。

GET方法,主要是用于请求某个资源,它也是我们最常用到的一种方法,当我们获取列表数据分页等等。但是我们知道GET方法数据是存放在头部的,因此它有大小的限制,详见各家浏览器对URL的限制。

POST方法,主要是向服务端发送数据,运用非常广泛比如用户登陆,修改用户资料等。我们有的时候不能因为修改信息少而去改变为get方法,这是违背定义的。

PUT方法,主要让服务器创建一个资源。如果接触过restful设计的话,大家都很明白其中的含义。可能实际过程中我们也有用POST去代替其功能。

HEAD方法,大家用的就少了,与Get类似,但是知识要求返回头部信息即可,不用返回数据主体。因此用Head可以判断数据类型,查看相应状态。

OPTIONS 方法主要是告知服务器应该支持的功能。如果设置过nginx 的跨域,我们会对options这个方法有所了解。

DELETE方法主要用于删除URL所请求的资源,有的接口设计中会用这样的方法来表示。

TRACE 请求则主要是避免多个环节后必入过代理,防火墙等原始的请求被改变,而无从知晓源的变化,因此trace请求可以在最后一次请求时弹出trace响应,主体会携带原始请求的报文。除此之外,我们还定义了一些扩展方法:

  • LOCK 锁定资源

  • MKCOL 允许用户创建资源

  • COPY 服务器上复制资源

  • MOVE 服务器上移动资源