转载请注明出处:

  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. doy 20 系统优化

    系统优化 1.yum源的优化 CentOS   base   epel ​自建yum仓库​使用一个较为稳定的仓库​wget -O /etc/yum.repos.d/CentOS-Base.repo h ...

  2. TCP 异常断开连接的过程

    Tcp连接正常断开的情况,大家都了解,也就是一端发送Fin报文开启四次挥手,然后 sock 结构销毁,但是我之前很少去追踪 Tcp 在对端宕机,进程 Crash 之后的行为逻辑.前段时间正巧遇到了这样 ...

  3. vite设置跨域

    1. vite.config.ts或者vite.config.js文件 server: { port: 3001, host: '0.0.0.0', open: true, proxy: { // 代 ...

  4. sqlserver数据备份

    sqlserver数据库 导入方法 第一种方法 1.打开SQL Server,写好登录名和密码点击连接. 2.打开数据库,右键某一个数据库,选择"新建查询(Q)". 3.再代码界面 ...

  5. selenium+鼠标操作+键盘操作+下拉框+弹出框+滚动条+三种等待--代码

    鼠标操作 键盘操作 下拉框 弹出框 滚动条 1 from time import sleep 2 from selenium import webdriver 3 4 driver = webdriv ...

  6. USB 驱动框架分析

    这里先说一些概念性的东西,了解一下USB 一.关于usb设备 都见过很多,用过很多了,每当我们插上一个usb设备到pc的时 右下角就会弹出一个提示信息,提示"发现xxx"设备,再接 ...

  7. database.property文件

    注意修改用户名密码 mysql8的版本要注意配置时区 此文件放置连接数据库的相关参数 jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://l ...

  8. c# form-data表单提交,post form上传数据、文件

    引用自:https://www.cnblogs.com/DoNetCShap/p/10696277.html 表单提交协议规定:要先将 HTTP 要求的 Content-Type 设为 multipa ...

  9. TCP通信聊天服务端和客户端(C/C++语言开发)附完整源码

    距离上次学Python写的Python实现简单聊天室已经过去好久了,现在学c++又写了一遍,其实过程差不多,无非是语法的变化,目前仅实现最简单的一对一的通信,然后改就是了,接下来应该是多线程了,话不多 ...

  10. webgl 系列 —— 变换矩阵和动画

    其他章节请看: webgl 系列 变换矩阵和动画 动画就是不停地将某个东西变换(transform).例如将三角形不停地旋转就是一个动画 和 CSS transform 类似,变换有三种形式:平移.缩 ...