美文网首页
HTTP协议GET与POST请求的区别

HTTP协议GET与POST请求的区别

作者: 小仙女本人呀 | 来源:发表于2018-09-10 16:14 被阅读0次
GET请求 POST请求
幂等,不会产生副作用(在浏览器刷新/回退时是无害的)。在HTTP的定义中,GET被称为安全方法。 非幂等,重复请求可能会带来意想不到的效果。 在HTTP的定义中,POST不是安全的方法。
GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。 POST放在Request body中。
GET请求参数会被完整保留在浏览器历史记录和服务器上日志记录里 POST参数都在body里面,服务器日志记录不到,浏览器历史也记录不到。
GET请求由于浏览器地址栏的限制,对传送的参数是有长度限制的 POST没有。
GET产生的URL地址可以被Bookmark。 POST不可以。
GET请求会被浏览器主动cache POST不会,除非手动设置。
GET请求只能进行url编码 POST支持多种编码方式。
对参数的数据类型,GET只接受ASCII字符 POST没有限制。
GET产生一个TCP数据包 POST产生两个TCP数据包。

* 1. 幂等的意思是,同一个请求重复发送返回同样的结果。
* 2. 如果不使用HTTPS传输,GET和POST都是不安全的。

Safe

  • 安全这里的「安全」和通常理解的「安全」意义不同,如果一个方法的语义在本质上是「只读」的,那么这个方法就是安全的。客户端向服务端的资源发起的请求如果使用了是安全的方法,就不应该引起服务端任何的状态变化,因此也是无害的。 此RFC定义,GET, HEAD, OPTIONS 和 TRACE 这几个方法是安全的。但是这个定义只是规范,并不能保证方法的实现也是安全的,服务端的实现可能会不符合方法语义,正如上文说过的使用GET修改用户信息的情况。引入安全这个概念的目的是为了方便网络爬虫和缓存,以免调用或者缓存某些不安全方法时引起某些意外的后果。User Agent(浏览器)应该在执行安全和不安全方法时做出区分对待,并给用户以提示。

Idempotent

  • 幂等幂等的概念是指同一个请求方法执行多次和仅执行一次的效果完全相同。按照RFC规范,PUT,DELETE和安全方法都是幂等的。同样,这也仅仅是规范,服务端实现是否幂等是无法确保的。引入幂等主要是为了处理同一个请求重复发送的情况,比如在请求响应前失去连接,如果方法是幂等的,就可以放心地重发一次请求。这也是浏览器在后退/刷新时遇到POST会给用户提示的原因:POST语义不是幂等的,重复请求可能会带来意想不到的后果。

Cacheable

  • 可缓存性 顾名思义就是一个方法是否可以被缓存,此RFC里GET,HEAD和某些情况下的POST都是可缓存的,但是绝大多数的浏览器的实现里仅仅支持GET和HEAD。关于缓存的更多内容可以去看RFC7234。

另,参考:https://www.cnblogs.com/nankezhishi/archive/2012/06/09/getandpost.html

相关文章

  • java笔试题1

    请简述http协议中get请求和post请求的区别答: 1. get请求比post请求快。 2. get请求传参时...

  • Http和Https

    Http 参考文章关于HTTP协议,一篇就够了 GET和POST请求的区别 GET请求例子: GET /books...

  • HTTP协议相关

    HTTP超文本传输协议 HTTP的请求方式有哪些?GET请求和POST请求的区别?HTTP请求的特点 HTTP的请...

  • post And get

    post And get post 与 get 请求的区别: 相同点:post和get都属于tcp协议传输。 po...

  • 浅谈Servlet

    post与get之间的区别 他们是Http协议的两种常见请求方式。 数据传递长度:get长度比较小,post没有限...

  • PHP面试题

    1.表单中get与post提交方法的区别? 答:get是发送请求HTTP协议通过url参数传递进行接收,而post...

  • 第一篇php常见笔试题

    1.表单中get与post提交方法的区别? 答:get是发送请求HTTP协议通过url参数传递进行接收,而post...

  • java 面试题1(基础)

    1、请简述http协议中get请求和post请求的区别 可参考此文章 1、GET - 从指定的资源请求数据。 查询...

  • java web 核心(上)

    http协议 应用层协议 http请求格式 请求行 【请求类型(post,get) 请求路径 协议版本】请求头 ...

  • GET和POST的区别

    GET和POST的区别 HTTP请求方法 说GET和POST之前就先来看一下什么是HTTP吧。 超文本传输协议(H...

网友评论

      本文标题:HTTP协议GET与POST请求的区别

      本文链接:https://www.haomeiwen.com/subject/bsbsgftx.html