ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Http请求方式的正确使用场景

2021-11-28 17:59:41  阅读:266  来源: 互联网

标签:场景 http 请求 ResponseResult return 服务器 Http post


文章目录



前言

我们从大一刚开始学习Java到现在已经写了两三次项目后,我们的编程能力在逐渐提升,但是有个很容易忽略的点,虽然说平时对开发没有太大的影响,但是即使是很小的错误,都极有可能会对我们未来的开发和工作造成打击性的影响。所以今天我就来记录一下这个学习过程。


一、问题引入

时日至今,我很荣幸能够成为一名web后端学习者,在我们前后端合作写项目的同时,我们后端的任务就是维护数据和写接口,总所周知,接口决定了一个功能的实现,所以对于接口的问题,就是http的请求方式的正确与否。

依稀记得,我们第一次写项目,由于对http请求方式不是很了解,所以使用的最多的就是post请求和get请求,当时只是简单的记得,post请求能够隐藏请求参数,get请求的参数会加在url后面。当时这种简单的认知只是觉得虽然说是这样,但是其实并没有太大的区别,就是说,登录使用post,其他的都行。但是其实这种是不对的,每种请求方式都有自己的特性,使用的方式、场景也不尽相同。

印象最深刻的一次,就是我当时在网上查资料学习了一些关于这些http请求方式的知识,并且当时在项目中使用了,我们的前端人员竟然问我,这种请求方式是什么,怎么没有见过。我当时觉得这并没有什么,但是随着知识、项目的学习,我觉得这些却变得极其重要了起来。

下面就让我们一起来学习下,http几种请求方式吧。


二、http几种请求方式的使用


1.GET

(1)get请求是用来获取数据的,就是说只是用来查询数据,不对服务器的数据进行任何的修改、添加、删除等操作,就可以使用get请求;

(2)get请求会把请求的参数加在url后面,这样会产生安全问题,稍微懂点编程的人员都可以通过url来获取你网址的参数和值;

(3)get请求的参数对于请求的url来说并没有大小限制,但是对于不同的浏览器可能会有不同的限制。

//比如,使用id来查询演员信息
@GetMapping("/findActorMessage")
public Result findActorMessage(Integer actorId) {
    return actorService.findActorMessage(actorId);
}

 这样的话,对于接口的请求的url就是以下这种

Request URL:
    http://localhost:8080/video/actor/findActorMessage?actorId=1

2.POST

(1)post请求一般是对服务器的数据的操作,常用来使用数据的提交,新增操作,这种请求会改变数据的种类等资源;几乎目前所有的提交操作都是通过post来实现;

(2)post请求的请求参数一般都是放在请求体中,不会显示在url后面

(3)post请求的大小也会被服务器限制,这种限制的主要因素是服务器的处理能力。

    //用于向数据库添加用户操作
    @PostMapping("/addUser")
    public ResponseResult addUser(User user) {
        User user1 = userService.findUserByAccount(user.getAccount());
        if (user1 == null) {
            userService.addUser(user);
            return ResponseResult.success("添加成功");
        } else {
            return ResponseResult.error("用户已存在");
        }
    }

这种方式的请求URL如下 

Request URL
    http://localhost:8080/video/user/addUser?account=zzal123456&password=123456

 但是post中的请求参数会隐藏在方法的请求体当中。

3.PUT

 (1)PUT请求是向服务端发送数据、改变信息的,即使POST和PUT请求一样都会改变服务器的数据,但是PUT的侧重点在于对数据的修改操作,而POST则是对数据的添加操作;

(2)PUT请求需要注意的是,虽然和POST请求的执行都是改变动作,但是它采用的参数传递需要使用query格式,否则是拿不到传递的参数的,也就是说如果不使用query格式,那么就只能享受空指针异常了。

    //这里用于修改操作
    @ApiOperation(value = "用户修改邮箱")
    @PutMapping("/findAllUser")
    public ResponseResult updateEmail(String email, int userId) {
        return userService.updateEmail(email, userId);
    }

4.DELETE

 DELETE请求顾名思义,很简单,就是删除资源,一般用于数据库数据的删除操作,这里不再赘述。

   //这里用于删除操作
    @ApiOperation(value = "根据id删除用户")
    @DeleteMapping("/deleteById")
    public ResponseResult deleteById(int userId) {
        User user = userService.findUserById(userId);
        int i = userService.deleteUserById(userId);
        if (i > 0) {
            return ResponseResult.success("删除成功", user);
        } else {
            return ResponseResult.error("抱歉未找到");
        }
    }

5.HEAD

(1)HEAD请求与GET请求类似,区别在于它只是请求页面的头信息,用来获取报头信息,返回的响应中没有内容,GET请求的返回中有实体信息。

(2)HEAD请求一般用来判断类型、根据返回状态确定资源是否存在、资源是否更新以及更新的时间等。

(3)HEAD请求常常被忽略,但是能提供很多的有效信息,特点主要有:只请求资源的头部、可以检查超链接的有效性、检查网页是否被修改、更多用于自动搜索机器人获取页面的某些认证信息等。

6.OPTIONS

(1)由于OPTIONS请求暂时我还没有接触到,所以此部分只是查询资料后总结,这里只是对这种请求方式的简单介绍。

(2)OPTIONS请求是用于获取由Request-URI标识的资源在请求/响应的通信过程中可以使用的功能选项,通过这个方法,客户端可以在才取具体资源之前,决定对该资源采用何种必要措施,或者了解服务器的性能;

(3)POPTIONS请求方法的主要用途有两个:

        1)获取服务器支持的HTTP请求方法;

        2)用来检查服务器的性能。



总结

以上的http的请求方式基本上可以满足我们现阶段的开发需求,同时,正确使用请求方式也是一个小的细节,希望能对大家有所帮助。

标签:场景,http,请求,ResponseResult,return,服务器,Http,post
来源: https://blog.csdn.net/z318913/article/details/121593988

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有