你真的懂Http请求吗?

504 阅读3分钟

请求方式与请求参数

常用的请求方式无非就是增删改查,在http请求中增删改查对应的请求方式分别为:

  • post:增,提交数据给服务端
  • delete:删,删除指定的数据
  • put:改,更改服务端已有的数据
  • get:查,从服务端获取数据

与这些相对的还有这些请求方式携带参数的形式,总共有三种携带数据的方式:

  • query参数:

    即查询字符串,就是我们最最常见的在地址栏上携带参数,get请求常用这种方式携带参数,例如/addUser?userName=asuhe&userId=1。这种请求方式用?来与请求路径分割,当携带多个query参数时就用&来分割参数

    • query参数的数据是显示暴露在地址栏上的
    • 编码方式为urlencoded
  • params参数

    params参数和query参数一样是显示地暴露在地址栏上的,例如server:/addUser/:userId,client:/addUser/1,服务端就收到userId=1

  • 请求体参数

    通常post请求发送的参数就是请求体参数,用这种方法携带参数会将参数包含在http请求的请求体中。该种参数有两种格式一种是urlencoded,另一种是json

    • urlencoded格式:在请求体中参数是以类似query参数的形式存放,例如:name=asuhe&age=18。请求头参数的格式为:Content-Type: application/x-www-form-urlencoded
    • json格式:参数在请求体中以json格式存放,例如:{"name":"tom","age":18}。其请求头中的参数为:Content-Type: application/json

请求方式与请求参数之间的联系

  • 通常情况下,请求方式与请求参数可以任意搭配。也就是说,即使我们使用post的方式提交参数,我们也可以使用query参数的形式来携带提交的数据
  • 理论上一次请求可以使用上述三种类型参数中的任何一种,也可以同时使用不同类型的参数来完成一次请求
  • get请求方式有些特殊,get方式提交请求不能使用请求体参数来携带数据,因为get请求是没有请求体的

API接口风格

根据后端接口处理请求的方式,我们可以将API接口分为restful风格和非restful风格的API。

REST API

rest APIrestful风格的API有如下特点:

  • server后端CURD操作是根据client发送请求的方式来决定的
  • 同一个请求路径可以进行多个操作
  • 请求方式会用到getpostputdelete

通常rest API对同一数据进行操作时,只有一个路径。例如对用户信息进行CURD,rest API的形式为/user。客户端要对用户信息进行增就使用post请求提交数据,删就用delete请求,依次类推实现数据操作。这一个接口就实现了CURD四种功能

非REST API

非rest APIrestless风格的API,它有如下特点:

  • 后端CURD操作不根据client的请求方式决定,而是根据请求路径
  • 一个请求路径只对应一个操作
  • 一般只使用getpost请求就够了

开发中最常见的一个操作对应一个请求路径的就是restless API了。