转载请注明出处:

  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. k8s利用endpoints和service访问外部服务

    一.原理解析 在k8s集群中我们通过创建service去访问对应pod内的服务,而在创建service的时候会同时创建一个与service同名的endpoints对象,endpoints与pod实际建 ...

  2. Alibaba Cloud Linux 3.2104 64位安装mydumper-0.9.1

    1 下载 wget https://launchpad.net/mydumper/0.9/0.9.1/+download/mydumper-0.9.1.tar.gz tar -zxvf mydumpe ...

  3. ReactHooks_useState

    import { useState } from "react"; import './App.css'; function App() {   const [redBorder, ...

  4. Linux中/etc目录下passwd和shadow文件

    /etc/passwd介绍 首先,通过cat /etc/passwd 来查看文件/etc/passwd中内容: root:x:0:0:root:/root:/bin/bash daemon:x:1:1 ...

  5. CF1272 C Yet Another Broken Keyboard 题解+代码比对

    C. Yet Another Broken Keyboard time limit per test 2 seconds memory limit per test 256 megabytes inp ...

  6. maya灯光导入houdini插件开发

    加入工作室时师兄给了两道测试题,由于第一道是完善师兄的一个houdini项目管理插件,我只是开发了一些小功能,所以不好意思拿出来. 第二道题就完全是由自己开发的一个小插件,功能是把maya里的灯光导入 ...

  7. js下载流文件

    npm install js-file-download --savenpm install axios --save import axios from "axios"; imp ...

  8. 【内存管理】ION内存管理器浅析(system heap)(基于linux 4.14)

    什么是ION ION具体不知道是什么的缩写,只知道是android系统上google引入的内存管理方式,为了实现用户与内核间数据共享时零拷贝.多用于多媒体,比如camera和display,graph ...

  9. dockerflie

    FROM newbe36524/aspnet:5.0-buster-slim AS base ENV TZ=Asia/Shanghai WORKDIR /app EXPOSE 3400 3400 RU ...

  10. Docker部署NextCloud

    docker run -d -p 80:80 nextcloud 数据库可以选Mysql或者Pg 下载客户端 https://nextcloud.com/