首页/文章/http-网络

GET和POST请求到底有什么区别

2024-08-07
14365 分钟
...

在前后端交互中,GETPOST是两种最常见的HTTP请求方法,它们有许多不同之处也有相同之处。

它们只是 HTTP 协议为了不同分工而规定的两种请求方式,所以它们的底层都是基于TCP/IP协议实现的,它们都可以实现前后端的双向交互。

GET多用于从后端获取资源,并且不会改变后端的资源数据,比如用搜索引擎搜索。而POST多用于向后端发送数据,以创建/更新资源,比如前端的注册/登录。

区别一:参数传递

这是最直观的区别,GET请求传递的参数会通过URL传递,参数就用接在URL后面,有多个参数就用&连接,比如http://abcd.com/resource?id=123,且这个参数的长度通常也是有限制的,通常限制为2k,当然不同的浏览器、不同的版本限制的长度可能会不同,但是一定会有限制。而POST的参数一般是包含在请求体request body中的,所以它对参数的长度没有限制。

tips:当然,使用HTTP发接口请求不管是GET还是POST都是不安全的,因为HTTP在网络上是明文传输,所以要安全性的话可以使用HTTPS。

区别二:安全

上面说到GET请求传递的参数会通过URL传递,参数会直接暴露在URL上,所以它的安全性较差。而POST会更安全一点,因为它请求的参数不会被保存在浏览器历史或 web 服务器日志中:浏览器历史记录主要存储访问过的URL,对于GET请求,查询字符串(如果有的话)会被包含在URL中,因此可能会被浏览器历史记录。然而,对于POST请求,参数是在请求体中发送的,所以这些参数不会被浏览器历史记录。

区别三:缓存

GET请求一般都会被浏览器缓存,而POST请求如果不设置的话是不会被缓存的。

区别四:回退和刷新

GET 请求可以直接进行回退或刷新,并不会对用户和程序产生任何影响,这个操作是无害的。而 POST 请求的数据则会被重新提交。

区别五:书签

GET请求的URL可以被收藏为书签,而POST请求的地址不可以被收藏为书签。

讲到GET和POST请求,就不得不讲一讲现在Web设计的主流风格 --- RESTful API

RESTful API提倡使用HTTP的标准方法GET,POST,PUT等操作资源,通过这些方法来描述操作:

  • GET:检索获取资源。
  • POST:新增资源。
  • PUT:更新整个资源。
  • PATCH:更新指定资源。
  • DELETE:删除资源。

比如:

GET /users 是获取所有用户的信息,而GET /users/{userId} 则是获取指定用户的信息。

HTTP状态码

RESTful API设计鼓励使用HTTP状态码来表明请求的结果,这些状态码能告知用户端请求处理的结果。这些状态码总共分成五类:分别是1xx,2xx, 3xx, 4xx, 5xx。因为1开头的状态码几乎遇不到,所以这里先不讲,这里主要讲讲常用的状态码:

2xx: 表示请求成功并且已被后端接收

  •  200 OK,最常见,表示请求成功,数据可以正常返回。
  • 201 Created 表示请求成功,通常用于POST请求,表示已经创建了一个新的资源。
  • 204 No Content 表示请求成功,但后端返回的响应中没有内容。

4xx: 表示请求有错误,后端无法正确处理

  • 400 Bad Request 表示请求失败,可能是语法错误。
  • 401 Unauthorized 表示请求失败,可能是用户认证没通过。
  • 403 Forbidden 表示后端收到请求,但是前端没有权限。
  • 404 Not Found 表示后端收到请求,但是前端要的数据后端没有。

5xx: 表示后端在处理请求的时候出现了错误

  • 500 Internal Server Error 请求失败,后端内部出现错误。

GET和POST是两种最常见的HTTP请求,GET 适合用于数据查询和检索,而 POST 更适合用于数据的创建或更新。它们最明显的区别就是 GET 请求的参数要放在 URL 上,而 POST 请求的参数要放在请求体中。

如果您觉得这篇文章有帮助,请点个赞吧~

分享文章

相关文章

更多文章 →
http-网络2025-08-06
按下回车后网页是怎么出来的
当你在浏览器中输入一个网址,比如 ,然后按下回车键,几秒钟后页面就完整地呈现在你眼前。这个看似简单的操作,背后其实是一整套精密协作的网络机制在起作用。本文将带你从基础讲起,理解 Web 开发中最重要的网络知识,帮助你搞清楚: 数据是如何从服务器传到你的电脑,并最终变成网页的? 一、互联网通信的分层模型:OSI 七层模型 为了管理复杂的网络通信,工程师们提出了一个通用的参考模型—— OSI 七层模型 。它把整个通信过程划分为七个层次,每一...
学习面试
http-网络2025-03-04
网络代理详解
一、 的基础概念 1\. 什么是代理? 代理是一种通过中间服务器来帮助 访问目标服务器的技术。代理服务器位于客户端与服务器之间,充当两者的中介,从而实现客户端和服务器之间的隔离。用户的所有请求经过代理后,再发往目标服务器,而目标服务器的响应则返回代理,再由代理传递给用户。 2\. 网络代理的工作流程 在基本的网络代理工作流程中, 扮演了“请求转发者”和“响应返回者”的角色: 1. 客户端请求 :客户端将请求发送到代理服务器,而不是直接发...
学习面试
http-网络2024-11-29
没有koa的cors你怎么处理跨域?
关联问题: JSONP有何局限性 CORS如何处理复杂请求 代理在生产环境效果如何 前言 “金九银十”的秋招,就像是落进池塘的羽毛,连点水花都没砸起来。已读不回是常态,能给面试已是情分,能拿offer的更是少之又少。可怜我在寒潮来临的深秋之际,也只得哀叹一句“越来越冷了啊...” 不过人总是要吃饭的,所以再怎么冷,卖炭翁也得卖炭,牛马攻城狮也得“攻城”,既是为了填饱肚子,也是为了“春天”做准备。所以今天为各位前端工程狮细聊一下前端面试中...
学习面试
http-网络2024-09-11
面试常客系列之跨域前言
跨域?什么是跨域呢?我们先来看看一个url的组成, ,这一个url我们可以分成四部分来看 是协议, 是域名, 是端口, 是路径.在浏览器中,我们从一个域名发送请求到另一个域名,如果两个域名的协议,域名,端口三部分只要存在一部分不同就会发生跨域,也就是说只有两个域名的协议,域名,端口都相同才会不会发生跨域,所以我们又如何解决跨域的问题呢?在下文中会给大家介绍几种方法去解决跨域问题. 那么要解决跨域就不得不谈及 ,同源策略是一种安全措施,用...
学习面试
http-网络2024-09-02
HTTP缓存:别傻傻不会回答了
前言 在有大量数据交换的应用程序中,我们会采取一些方式将那些实时性要求不高的数据生成副本,并存储在某个相对来说可以快速到达、访问、获取的仓库,这样在需要这些数据的时候可以直接从这个仓库中获取数据。 缓存的目的: 提升数据交换的性能,提高速度。 缓解服务器或数据库的压力。 HTTP 根据是否要向服务器发送请求将缓存规则分为两类:强缓存和协商缓存。 强缓存 在强缓存中,如果命中缓存,则直接从缓存数据库中取出资源,无需再发送请求到服务器上。...
学习面试
http-网络2024-08-19
网络-navigator.sendBeacon前言
navigator.sendBeacon 是浏览器的 API,用于在浏览器后台发送异步请求,它不会等服务端响应。 它可以用于在页面卸载或关闭的时候,发送数据,以及在不阻塞页面卸载的情况下发送数据。 使用 方法发送的请求是异步的,不会阻塞页面的卸载或关闭过程。 这对于需要在用户离开页面之前发送数据的情况非常有用。 优点 不受页面卸载过程的影响,确保数据可靠发送。 普通的 请求如 和 在页面关闭或者刷新、前进、后退等操作时 , 这些请求有可...
学习面试

评论

请登录后发表评论

去登录
加载评论中...

目录