【http】HTTP 有哪些方法

HTTP 有哪些方法

  • GET、HEAD、POST、PUT、DELETE、CONNECT、OPTIONS、TRACE、PATCH等8种类型。

  • 方法语义
    GET获取URL资源。
    POST更新URL对应资源。
    HEAD和GET相似,但是没有响应体
    PUT新增资源。
    DELETE删除资源。

GET 和 POST 有什么区别

  • 其实GET 和 POST 在底层上是没有区别的。
    • 因为 GET 和 POST 都是 HTTP 协议,都是基于 TCP/IP,所以在HTTP实现上,其实是没有区别的。
    • GET 和 POST 都可以选择在URL 上 填入路径参数,也都可以在 request body 里面填入内容。(一般大家会觉得 路径参数 是get 常用,request body 是 post 常用)
  • 但是GET 和 POST 的语义不一样,不同浏览器、服务器对此的操作不一样,导致我们使用上需要进行区别。
    • GET 的语义是给定URL,获取资源,不对远程资源进行修改,是幂等的。
    • POST 的语义是更新对应的远程资源,不是幂等的(多次操作的结果可能是不一样的)。
    • 不同浏览器对URL长度有限制:大多是2k字节,因此对于长的修改内容,放在POST 的 request body 会更好。
    • 不同服务器对GET中的request body 的处理方式也不同:有的服务器可能会直接忽视request body,有的不会忽视。
    • 不同的服务器对于 GET 和 post 的发送方式可能也不同
      • GET 请求,浏览器通常会把 http header 和 body 一并发送。
      • POST 请求,有的浏览器会选择先发送 header,服务器响应 100 continue,之后再发送 body;有的浏览器也会选择一并发送(firefox)。

请求路径、请求头和请求体中的请求参数的区别

名称内容例子优点缺点java使用
请求路径中的参数跟在路径后面,用 / 分割http://example.com/{id}@PathVariable
请求路径中的查询参数通常用于GET请求中,直接附在URL路径后方的参数。http://example.com/api?a=1&b=2 (问号后的参数)1. 简单,便于解析
2. 对于无状态简单的请求,很方便。
1. 不会加密,会直接暴露参数值。
2. 由于不同的浏览器对URL长度会有限制,因此参数长度有限制。
3.
请求头中的参数在HTTP header中的字段。accept 字段
content-type 字段
content-length字段
1. 安全性较高,不会出现在浏览器URL上。
2. 适用与所有HTTP方法。
1. 由于HTTP 头大小通常有限制,因此不适合大量数据传输。@RequestHeader
请求体中的参数在请求体中。通常用于PUT、POST请求。1. 可以传输大量数据。
2. 可以传输敏感数据。
1. 需要指定content-type 字段。
2. 相对更消耗带宽。
@RequestBody
  • 9
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值