请求可以分为如下类别
请求类别 | 特点 |
---|---|
GET | 长度限制为1024,请求时的速度快,接口与参数暴露引起风险,但使用方便 |
HEAD | 请求的方式类似于GET,同属于HTTP1.0的请求方式,和GET的区别在于开发中使用较少,因为它不会返回任何的实体信息,它常用来测试接口等资源,不法分子暴力攻击一个地址时也会使用这个 |
POST | 可携带的数据长度由具体的Controller决定,但是它本身的长度理论上是不受限的,常用在异步请求中,数据比GET慢,但比GET安全 |
PUT | 上传某种特定资源时使用,不常用,除非研发需要,不然现在的上传spring等框架都有着成熟的上传手段 |
DELETE | 请求服务器删除指定的资源,不常用,因为研发不会允许向外直接暴露非业务性质的删除接口 |
TRACE | 查看服务器收到的所有请求,用于测试或查看问题 |
OPTIONS | 用来向服务器查询对于某些特殊资源的被允许的请求方式,也有人用来检查服务器性能 |
CONNECT | 一般用不到,这个请求是HTTP1.0协议,不算1.0,以后被提出的一个预留给管理形式的代理服务器的 |
COPY | 将指定的资源复制到Destination消息头指定的位置 |
MOVE | 将指定的资源移动到某一位置 |
SEARCH | 用来搜索某一资源 |
PROPFIND | 获取资源信息 |
上面这些就是目前为止的所有请求方式,但是一般情况下我们使用的就三种GET、POST和异步,其他的基本不是研发用的,常常是测试人员用
Web研发初学者对于常用的三种请求,常常会存在一个误区,认为异步通信就等于post请求,有这个误区大概率的可能是他们在学习网络知识的时候,被书中所说到的get请求会发生重定向post不会,以及在自己开发使用时通常向后台提交post请求一个异步通讯用的controller所误导,正确的观点应该是get和post两种请求,并不会影响是否会发生页面跳转,他们两个的区别只是承载请求参数的方式不同以及书中说的是否会显示重定向路由,至于具体的是否发生页面的跳转,还是返回数据是后台决定的