http的请求方法?post和get区别?幂等和非幂等

http请求方法

  • get:获取资源
  • head:获得报文首部,用于确认URI的有效性及资源更新的日期等
  • post:传输实体主体
  • put:传输文件/更新数据
  • delete:删除文件
  • options:询问支持的方法

OPTIONS请求方法的主要用途有两个:
1、获取服务器支持的HTTP请求方法;也是黑客经常使用的方法。
2、用来检查服务器的性能。例如:AJAX进行跨域请求时的预检,需要向另外一个域名的资源发送一个HTTP OPTIONS请求头,用以判断实际发送的请求是否安全。

  • connect:要求用隧道协议连接代理:(格式: connect 代理服务器名:端口号 http版本 )
  • trace:追踪路径(配合请求首部字段:max-forwards 配合通用首部字段:via记录经过的代理服务器的信息)。trace方法是让web服务器将之前的请求通信返回给客户端的方法

get和post区别

从缓存的角度,GET 请求会被浏览器主动缓存下来,留下历史记录,而 POST 默认不会。

从编码的角度,GET 只能进行 URL 编码,只能接收 ASCII 字符,而 POST 没有限制。

从长度的角度,GET请求在URL中传送的参数是有长度限制的,而POST没有。

从参数的角度,GET 一般放在 URL 中,因此不安全,POST 放在请求体中,更适合传输敏感信息。

从幂等性的角度,GET是幂等的,而POST不是。(幂等表示执行相同的操作,结果也是相同的)

从TCP的角度,GET 请求会把请求报文一次性发出去,而 POST 会分为两个 TCP 数据包,首先发 header 部分,如果服务器响应 100(continue), 然后发 body 部分。(火狐浏览器除外,它的 POST 请求只发一个 TCP 包)

幂等性

一次和多次请求某一个资源对于资源本身应该具有同样的结果(关注产生的影响而不是结果),也就是说任意执行对资源本身所产生的影响均与第一次执行的影响相同。
注意:(一次和多次结果中)可能返回得到不同的结果,当时并不影响资源

幂等的:get、put、delete
非幂等:post、patch(patch方法用来更新局部资源)

PUT 和 PATCH 请求的区别体现在服务器处理封闭实体以修改 Request-URI 标志的资源的方式。在一个 PUT 请求中,封闭实体被认为是存储在源服务器上的资源的修改版本,并且客户端正在请求替换存储的版本。而对于 PATCH 请求,封闭实体中包含了一组描述当前保留在源服务器上的资源应该如何被修改来产生一个新版本的指令。PATCH 方法影响由 Request-URI 标志的资源,而且它也可能对其他资源有副作用;也就是,通过使用 PATCH,新资源可能被创造,或者现有资源被修改。

理解为:PATCH 请求中的实体保存的是修改资源的指令,该指令指导服务器来对资源做出修改,所以不是幂等的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值