转载请注明出处:

  GET方法和POST方法是两种HTTP请求方法,GET方法通过URL传递参数,可以缓存,但参数长度有限,一般用于获取资源;POST方法通过表单传递参数,不能缓存,参数长度没有限制,一般用于提交数据。

1. GET和POST方法的区别

  1.数据传递方式:GET方法的参数以查询字符串方式出现在URL中,而POST方法的参数则放在请求体中。

  2.数据传输方式:GET方法的数据传输方式是明文传输,而POST方法的数据传输方式可以使用加密方式进行传输。

  3.数据长度限制:GET方法请求的数据长度是有限制的,一般为2048个字符,而POST方法则没有限制。

  4.请求安全性:因为GET方法的数据是通过URL明文传输的,所以安全性较POST方法要低一些。

  5.请求幂等性:GET方法是一种幂等请求,也就是说对同一URL的多次请求结果应该是一致的,而POST方法则不是幂等的,因为它每次提交的数据都不一样。

  GET方法主要用于请求数据,而POST方法主要用于提交数据。当需要传递数据时,应尽可能使用POST方法,并考虑加密传输,并避免使用GET方法传递敏感数据。

2. 为什么查询要用get不用post

  在Web应用程序中,查询(或检索)一般指获取或获取资源或信息,而不涉及更新或更改它们。由于查询不需要修改或更新任何数据,因此使用GET方法可以更好地满足它的需求。

  GET方法具有以下优点:

  1.速度快:因为查询使用GET方法时,请求参数会被附加在URL的查询字符串部分,服务器可以直接根据URL响应请求,而不需要在处理请求参数和请求体上花费额外时间。

  2.可以被缓存:由于查询使用GET方法时,请求参数在URL中,因此可以被缓存,可以增强网络性能。

  3.易于使用:由于查询使用GET方法时,请求参数可以直接在URL中传递,因此不需要在页面中构建额外的表单。

  另外,由于GET方法是一种幂等性请求(对相同的URL的多次请求会返回相同的结果),所以对于查询数据的请求来说,使用GET方法更为合适。而对于POST方法,由于它涉及更改或更新数据,因此不适合查询数据,也不适合缓存和书签。

  当需要查询数据时,应使用HTTP的GET方法,而不是POST方法,以获取良好的性能和易用性。

3.get方法为什么可以缓存

  GET方法可以被缓存的主要原因是因为GET方法常常被用于读取数据而不是修改数据。

  当使用GET方法请求资源时,请求的URL会带有请求参数,浏览器会根据请求URL,即请求参数的组合,对该请求的响应内容进行缓存。当再次请求同样的URL和请求参数时,浏览器可以直接从缓存中读取响应内容,而不必再次发起请求,从而提高了页面的加载速度和响应速度。

  同时,使用GET方法时,请求的所有数据都会被附加到URL的末尾,因此请求参数可以被缓存,同时,因为它不需要请求体(Request Body),也可以减少请求的负载。在某些情况下,为了进一步提高Web应用程序的性能,可以在服务器端配置缓存策略,例如使用ETag或Expires头信息与缓存控制指令一起使用指定过期时间等,以便在客户端缓存多个文件时获取最佳结果。

  因为GET方法是一种幂等性请求(对相同的URL的多次请求会返回相同的结果),通常用于读取或查询数据,所以可以安全地进行请求结果的缓存,以提高性能和相应时间。

4.什么场景需要用post进行查询请求

主要有以下两种情况:

  1. 查询参数较大,超过URL长度限制:在GET方式中,查询参数会被拼接到URL后面,而URL的长度是有限制的。如果查询参数较大,超过了URL长度限制,那么使用POST方式进行查询请求就是更好的选择。

  2. 查询参数包含敏感信息:在一些场景中,查询参数可能包含敏感信息,例如用户的密码等。如果使用GET方式进行查询请求,那么这些敏感信息可能会被保存在浏览器的历史记录中,或者被其他人通过网络抓包等方式获取到。因此,在这种情况下,使用POST方式进行查询请求就是更好的选择。POST方式会对请求参数进行加密处理,能够更好地保护敏感信息的安全性。

    需要注意的是,虽然在上述情况下使用POST方式进行查询请求可能更为合适,但是这并不是POST方式的主要用途。POST方式主要用于提交数据,而GET方式主要用于获取数据。在一般情况下,我们应该根据API接口的规范来选择使用哪种方式进行查询请求。

Http请求get与post请求方式的各种相关面试总结的更多相关文章

  1. Android请求服务器的两种方式--post, get的区别

    android中用get和post方式向服务器提交请求_疯狂之桥_新浪博客http://blog.sina.com.cn/s/blog_a46817ff01017yxt.html Android提交数 ...

  2. Android使用HttpClient以Post、Get请求服务器发送数据的方式(普通和json)

    讲这个之前,我们先来说说get和post两种请求的区别吧!!! 1. GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditPosts.jsp?name=te ...

  3. python接口自动化(十)--post请求四种传送正文方式(详解)

    简介 post请求我在python接口自动化(八)--发送post请求的接口(详解)已经讲过一部分了,主要是发送一些较长的数据,还有就是数据比较安全等.我们要知道post请求四种传送正文方式首先需要先 ...

  4. 前端向服务器请求数据并渲染的方式(ajax/jQuery/axios/vue)

    原理: jQuery的ajax请求:complete函数一般无论服务器有无数据返回都会显示(成功或者失败都显示数据): return result

  5. python3+requests:post请求四种传送正文方式(详解)

    前言:post请求我在python接口自动化2-发送post请求详解(二)已经讲过一部分了,主要是发送一些较长的数据,还有就是数据比较安全等,可以参考Get,Post请求方式经典详解进行学习一下. 我 ...

  6. postman 查看请求,已各种语言方式展示:

    查看请求,已各种语言方式展示:

  7. iOS- 网络请求的两种常用方式【GET & POST】的区别

    GET和POST 网络请求的两种常用方式的实现[GET & POST] –GET的语义是获取指定URL上的资源 –将数据按照variable=value的形式,添加到action所指向的URL ...

  8. HTTP 请求的 GET 与 POST 方式的区别

    HTTP 请求的 GET 与 POST 方式的区别 在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST. GET - 从指定的资源请求数据. POST - 向指定的资源 ...

  9. python3+requests:post请求四种传送正文方式

    https://www.cnblogs.com/insane-Mr-Li/p/9145152.html 前言:post请求我在python接口自动化2-发送post请求详解(二)已经讲过一部分了,主要 ...

  10. 通过 Ajax 发送 PUT、DELETE 请求的两种实现方式

    一.普通请求方法发送 PUT 请求 1. 如果不用 ajax 发送 PUT,我们可以通过设置一个隐藏域设置 _method 的值,如下: <form action="/emps&quo ...

随机推荐

  1. puts()与scanf(“%s”)

    使用gets()即使字符串中含有空格,依然可以接收,而scanf()不会. Example: /* 输入一个字符串到字符数组s1中,将s1中的字符串复制到字符数组s2中并输出s2中的字符串. 不用st ...

  2. visio任意图形填充

    开发工具->操作->修剪->按住Shift键点击填充图形所有边 同时选中后->组合->开发工具->操作->连接 回到开始选项卡选择填充颜色 中途不要点击其他, ...

  3. 生成Funnel漏斗图

    -----------第一步----------- import jsonlist_p = [{"action":"浏览商品","PV":5 ...

  4. Python数据分析第七周作业-MySQL的安装及应用

    项目 MySQL 博客名称 2003031126-石升福-Python数据分析第七周作业 班级链接 20级数据班(本) 作业链接 第七周作业 要求 每道题要有题目,代码(使用插入代码,不会插入代码的自 ...

  5. 记 第一次linux下简易部署 django uwsgi nginx

    1.首先确定django项目是跑起来的 2.装nginx  uwsgi ,网上教程一大堆 3.uwsgi的配置了 我是通过ini启动的 随意找个顺手的文件夹创建uwsgi.ini文件 我是在/home ...

  6. Java swing图形界面计算器

    效果图如下所示 : import java.awt.Color; import java.awt.Container; import java.awt.Font; import java.awt.Gr ...

  7. Shell脚本实现模拟并发及并发数控制

    #!/bin/bash #by inmoonlight@163.com #下面的代码控制并发数.其实是利用令牌原理实现 #一个线程要运行,首先要拿到令牌在该代码中即read一行数据,读取不到就会暂停, ...

  8. 使用request对象实现注册示例,请求方式的编码问题

    get提交方式: method="get"和地址栏请求方式默认都属于get提交方式 get方式在地址栏显示请求信息﹐(但是地址栏能够容纳的信息有限,4-5KB;如果请求数据存在大文 ...

  9. Graphx二度关系

    import org.apache.spark.graphx._import org.apache.spark.rdd.RDDval vertexArray = Array( (1L, (" ...

  10. 抽风的Maven、maven插件及配置

    Idea 配合 Maven使用中有时遇到莫名奇妙的问题,又莫名奇妙的恢复正常.整理如下: 1.删除系统环境变量Maven_Home,只需在IDEA中指定Maven及settings.xml即可. 有时 ...