之前做的java web项目,基本上只使用get和post的请求方式,但是现在新项目额外增加了put,delete,查了点资料,做个简单的总结。

1、GET-安全且幂等

get请求是用来获取数据的,只是用来查询数据,不对服务器的数据做任何的修改,新增,删除等操作。

在这里我们认为get请求是安全的,以及幂等的。安全就是指不影响服务器的数据,幂等是指同一个请求发送多次返回的结果应该相同。

特点:

get请求会把请求的参数附加在URL后面,这样会产生安全问题,如果是系统的登陆接口采用的get请求,需要对请求的参数做一个加密。

get请求其实本身HTTP协议并没有限制它的URL大小,但是不同的浏览器对其有不同的大小长度限制

2、POST-不安全且不幂等

post请求一般是对服务器的数据做改变,常用来数据的提交,新增操作。

特点:

post请求的请求参数都是请求体中

post请求本身HTTP协议也是没有限制大小的,限制它的是服务器的处理能力

3、PUT-不安全但幂等

put请求与post一样都会改变服务器的数据,但是put的侧重点在于对于数据的修改操作,但是post侧重于对于数据的增加。

4、DELETE-不安全但幂等

delete请求用来删除服务器的资源。

5、OPTIONS

options请求属于浏览器的预检请求,查看服务器是否接受请求,预检通过后,浏览器才会去发get,post,put,delete等请求。至于什么情况下浏览器会发预检请求,浏览器会会将请求分为两类,简单请求与非简单请求,非简单请求会产生预检options请求。

关于options请求具体详细的可以观看另一位作者的这篇文章:https://www.jianshu.com/p/5cf82f092201

另外:这些不同方式的请求形式,只是一种规范定义而已,并不是说get请求无法修改服务器的数据,只是一种规范,比如你也可以所有的请求都通过post方式来访问,实现功能上面没有任何问题,只是说这种做不符合了规范而已,我们平常编码还是尽量符合规范比较好。

转自:https://blog.csdn.net/zhenwei1994/article/details/84399999

转自:

GET,POST,PUT,DELETE,OPTIONS等请求方式简单总结的更多相关文章

  1. get、post、put、delete、head请求方式

    对资源的增,删,改,查操作,其实都可以通过GET/POST完成,不一定要用PUT和DELETE. 一:Jersey框架,实现了restful风格,常用的注解@GET.@POST.@PUT.@DELET ...

  2. WEB API 中HTTP的get、post、put,delete 请求方式

    一.WEB API 中HTTP 请求方式的四个主要方法 (GET, PUT, POST, DELETE), 按照下列方式映射为 CURD 操作: 1.POST 用于新建资源,服务端在指定的URI 上创 ...

  3. get、post、put、delete请求方式

    对资源的增,删,改,查操作,其实都可以通过GET/POST完成,不需要用到PUT和DELETE. Jersey框架,实现了restful风格,常用的注解@GET.@POST.@PUT.@DELETE如 ...

  4. Spring RestTemplate中几种常见的请求方式GET请求 POST请求 PUT请求 DELETE请求

    Spring RestTemplate中几种常见的请求方式 原文地址: https://blog.csdn.net/u012702547/article/details/77917939   版权声明 ...

  5. html form method 属性不支持put,delete请求方式,以及开启spring mvc的rest的方式

    1.加上隐藏域解决form method 不支持put,delete的请求方式的问题 2.配置spring mvc HiddenHttpMethodFilter过滤器实现对put和delete请求方式 ...

  6. get? post? put? delete? head? trace? options? http请求方法

    http1.1协议里面定义了八种请求方法: get:用作获取,读取数据 post:向指定的资源提交数据 put:更新,向指定的资源上传一个内容,比如说:更新一个用户的头像或者替换掉已有的一个视频 de ...

  7. cURL(wget)—— 测试 RESTful 接口及模拟 GET/POST/PUT/DELETE/OPTIONS 请求

    cURL 是一个简单的 http 命令行工具.与最优秀的 Unix 工具一样,在设计之时,cURL 是个小型程序,功能十分专一,而且是故意为之,仅用于访问 http 服务器.(在 Linux 中,可以 ...

  8. SpringBoot如何使用PUT、DELETE请求方式

    SpringBoot 2.2.X默认不支持put,delete等请求方式的. 首先需要在配置文件中打开他们,代码如下: spring.mvc.hiddenmethod.filter.enabled=t ...

  9. HTTP 请求方式: GET和POST的比较(转)

    GET和POST是HTTP的两个常用方法.   什么是HTTP? 超文本传输协议(HyperText Transfer Protocol -- HTTP)是一个设计来使客户端和服务器顺利进行通讯的协议 ...

随机推荐

  1. iOS-让button按钮显示成圆角

    这里用到的属性layer是CALayer类型,属于UIView,也就是说所有UIView的子类都能使用这个属性. @property (strong, nonatomic) IBOutlet UIBu ...

  2. 如何把Go调用C的性能提升10倍?

    目前,当Go需要和C/C++代码集成的时候,大家最先想到的肯定是CGO.毕竟是官方的解决方案,而且简单. 但是CGO是非常慢的.因为CGO其实一个桥接器,通过自动生成代码,CGO在保留了C/C++运行 ...

  3. iTerm - 让你的 MAC 命令行更加丰富多彩

    今天要给大家介绍一个工具: iTerm.这次我们讲的和开发技术无关,只是一个工具.但虽然是一个工具,却能让你的功力提升一个层级.下面我们就来一看究竟.每一位开发者都难免要用到命令行,从 git 版本库 ...

  4. StaticResource和DynamicResource

    Resource 资源(Resource)是保存在可执行文件中的一种不可执行数据,用来保存一些可以被重复利用的样式,对象定义以及一些传统的资源如二进制数据,图片等等我们可以在任何元素上定义资源 Sta ...

  5. qt5.9模块

    QAxContainer Module is a Windows-only extension for accessing ActiveX controls and COM objects 模块仅适用 ...

  6. 使用ArcGIS Server发布我们的数据

    原文:使用ArcGIS Server发布我们的数据 引言 上一篇我们已经安装好了ArcGIS体系的服务软件,这一篇将介绍如何把我们自己的数据通过ArcGIS Server发布出去,并且能够通过Web页 ...

  7. LINQ查询表达式---------orderby子句

    LINQ查询表达式---------orderby子句 LINQ可以按元素的一个或多个属性对元素进行排序. class Program { public class PerInfo { public ...

  8. 内存页面的各种属性(就是Read, Write, Execute的组合)

    PAGE_NOACCESS 禁止写入执行读取查看进程内存区域能发现,NOACCESS属性的内存页面都是FREE状态的(未提交使用的内存区域),只有内存区域最后的0x7FFE1000-0x7FFF000 ...

  9. UWP中弹出框屏幕适配问题

    上次在UWP中的消息提示框(二)中谈到弹出框在虚拟导航栏的手机上被遮挡问题,今天接就着扯. 上次给用户控件指定的宽高都是Window.Current.Bounds的宽高,而这个获取到的是包含应用程序窗 ...

  10. 从wireshark中学网络分析(一)

    http://blog.csdn.net/nk_test/article/details/56509688 http://blog.csdn.net/nk_test/article/details/5 ...