get与post区别

GET 和 POST 有什么区别? GET 和 POST 是 HTTP 请求中最常用的两种请求方法,它们的底层都是基于 TCP/IP 实现的。它们的区别主要体现在 5 个方面:缓存不同、参数长度限制不同、回退和刷新不同、历史记录不同、能否保存为书签不同,但它们最大的区别是规范和约定上的不同,规范中定义 GET 是用来获取信息的,而 POST 是用来传递实体的,并且 GET 请求的参数要放在 URL 上,而 POST 请求的参数要放在请求正文中。源码附件已经打包好上传到百度云了,大家自行下载即可~... 阅读详情

get与post的区别

相同点

get和post是HTTP协议中的两种发送请求的方法,底层都是用TCP/IP协议进行通信的。

get和post本质上都是TCP链接, 之所以有get和post区分,是因为需要通过HTTP的规则,对浏览器/服务器的限制进行区分,使他们在应用过程中体现出不同。

区别

  1. 最直观的区别就是GET把参数包含在URL中,POST通过body传递参数。

    url中传输参数有长度限制,一般为2kb

    post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。

  2. 最重点的区别是:GET产生一个TCP数据包,POST产生两个TCP数据包。

    也就是说,对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);

    而对于POST,浏览器第一次先将header发送过去,服务器若响应100 continue,确认服务器和网络没问题可以服务,才会再将真正的data数据提交,服务器响应200 ok。

  3. 安全性不同

    get安全性比较低。post安全性较高。

    这是因为,get将参数直接暴露在URL上

  4. 实际使用时

    get:只为获取数据,同时加上请求参数的url不会特别大,且没有需要保密的字段,则用get请求;

    post:为了提交数据,比如提交一些数据给后台保存、删除等,无论是否有一定数据量均可使用post;另外,使用post提交请求来get数据也是可以的。

    而响应回来的数据就靠服务器的处理

其他区别

  1. GET请求在浏览器刷新或者回退的时候是无害的。POST的话数据会被重新提交。
  2. GET可以被书签收藏,POST不行
  3. GET可以存在缓存中。POST不行
  4. GET 会将数据存在浏览器的历史中,POST不会
  5. GET 编码格式只能用ASCII码,POST没有限制
  6. GET 数据类型urlencode,POST是URLENCODE,form-data
  7. 可见性 参数在URL用户可以看见,POST的参数在REQUSET BODY中不会被用户看见

涉及到的知识块

浏览器

  1. get是会缓存的,post是不会缓存的

    get重复提交服务器是不会继续响应的,post是每一次提交就会响应一次

  2. 浏览器直接发出的GET只能由一个url触发。

    但是HTTP协议本身并没有这个限制。并不是GET只能用url

  3. 浏览器的POST请求都来自表单提交。

    每次提交,表单的数据被浏览器用编码到HTTP请求的body里。

    浏览器发出的POST请求的body主要有有两种格式:

    1. application/x-www-form-urlencoded用来传输简单的数据,大概就是"key1=value1&key2=value2"这样的格式。

    2. 传文件,会采用multipart/form-data格式。

    采用后者是因为application/x-www-form-urlencoded的编码方式对于文件这种二进制的数据非常低效。

    只不过表单里面的那些用input 等标签经过用户操作产生的数据都在会在body里。

接口使用(如ajax访问后端)

  1. 当用HTTP实现接口发送请求时,就没有浏览器中那么多限制了,只要是符合HTTP格式的就可以发。

    就是响应报文与请求报文的格式

    参数可以随意放:url上、header上、body上

    只要能和服务器约定好就行

    不过这些就有些规范,开发人员是按照一些风格做的,能做到更好的协和工作。

    最大名气的规范:REST

  2. GET也可以实现不缓存,浏览器缓存

    get一般用query参数,可以看到参数名、参数值

    post一般用params参数,只可以看到参数名

  3. POST作为接口的形式使用时:

    浏览器是重复请求的,但可以在服务器做判断,如果是重复请求就不给数据

  4. 只要某个要开发的资源/api的URL长度有可能达到2000个bytes以上,就必须使用body来传输数据,除非有特殊情况。

    Chrome的rul限制长度是2kb

    HTTP协议本身对URL长度并没有做任何规定。

理解

  1. TCP:

    传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。

    TCP旨在适应支持多网络应用的分层协议层次结构。

    连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。

  2. 对于get方式,服务器端用Request.QueryString获取变量的值。

  3. 对于post方式,服务器端用Request.Form获取提交的数据。

  4. 没有副作用被称为:幂等“(Idempotent)”

  5. RPC协议:

    是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。

    RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。

    传输层:就是要不要同源协议这些

    应用层:就是应用

问题

  1. post的query参数会显示在路径上吗?

  2. get的必须是query参数吗?

    不是

  3. post的必须是params参数吗?

GET 和 POST 的区别 阅读详情

相关推荐

Get和Post区别

对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据); 而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。 GET只需要汽车跑一趟就把货送到了,而POST得跑两趟,第一趟,先去和服务器打个招呼“嗨,我等下要送一批货来,你们打开门迎接我”,然后再回头把...

weixin_38740463的博客 1659

get和post的区别

get和post是http请求的两种基本方法。 最直观的的区别是get是把参数直接放在url中的,post是放在request body里面传递参数的。 w3cschool给出的标准答案是: ·get在浏览器回退时是无害的,但是post会再次提交请求 所谓的无害是指浏览器会缓存这次请求,以后再回退时不会再次发送请求,但是post会 ·get产生的url地址可以被bookmark,但是po...

扫地僧 242

ASPICE1-配置管理

SUP.8配置管理 BP1:开发配置管理策略 BP2:识别配置项 BP3:建立配置项管理系统 BP4:建立分支管理 BP5:控制变更和发布 BP6: 建立基线 BP7:报告配置项状态 BP8:验证配置项信息 BP9:管理配置项和基线的存储 1.配置管理概念 配置管理(Configuration Management,CM)是通过使用技术或行政手段对软件产品进行控制,以实现对软件开发过程和生命周期进行控制、规范的一系列措施。 完整性、一致性、可控性。 2.配置管理的主要活动: 1.

HDZQ2005的专栏 3687

爬虫必看:一分钟搞懂get和post时用urlencode()方法传参数表单

我们都知道encode()函数用来进行编码,那么它和urlencode()有什么关系吗? 先看一个例程: import urllib.request import urllib.parse data = {'name':'小明','age':'20',} change0 = str(data).encode() change1 = urllib.parse.urlencode(data) ch...

qq_44647234的博客 4909

RK3588开发板实战:从零开始移植Ubuntu 24.04(讯为SDK版)

本文详细介绍了如何在RK3588开发板上从零开始移植Ubuntu 24.04系统(讯为SDK版),涵盖开发环境准备、SDK解析、根文件系统定制、驱动适配、系统集成与烧录等全流程。通过实战案例,帮助开发者快速掌握RK3588开发板的系统移植技巧,适用于嵌入式开发与定制化Linux系统构建。

sand8的博客 437

SPSS中的数据分析—信度效度检验【1】

前一段时间跟大家分享了好几篇关于EXCEL方面的数据分析知识,不知道大家都掌握得怎么样了。今天咱们换个口味,给大家讲一下关于SPSS中的数据分析——信度效度检验。 现阶段正处在毕业季阶段,很多同学可能都正在忙着去弄自己的论文和答辩(不知道大家在翟天临上热搜这个事情上有没有做出过一定贡献),很多时候我们在写论文答辩甚至于其他课题研究的时候都会选择用问卷这种形式来收集数据。最后我们只需要针对问卷所取...

小白数据营的博客 6万+

GET与POST的区别

GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。 你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该用什么。 当你在面试中被问到这个问题,你的内心充满了自信和喜悦。 你轻...

weixin_30389003的博客 1759

STM32最小系统硬件组成详解

STM32最小系统硬件组成详解 0组成: 电源 复位 时钟 调试接口 启动 1、电源 : 一般3.3V LDO供电 加多个0.01uf去耦电容 2、复位:有三种复位方式:上电复位、手动复位、程序自动复位 通常低电平复位:(51单片机高电平复位,电容电阻位置调换) 上电复位,在上电瞬间,电容充电,RESET出现短暂的低电平,该低电平持续时间由电阻和电容共同决定,计...

alala120的博客 12万+

get和post面试题

一.get提交则提交的数据信息会在URL框中出现,因此传输数据量有限,不安全,但是传输速度快 二. . post提交则提交的数据信息不回出现在URL框中,因此传输数据量没有限制,相对比较安全,但是传输速度相比较较慢 三.get和post对比介绍 1、get在浏览器回退时是无害的,而post会再次请求。 2、get产生的URL地址可以被收藏,而post不会。 3、get请求会被浏览器主动缓存,而post不会,除非手动设置。 4、get请求只能进行URL编程,而post支持多种编码方式。 5、get请求参数会被

qq_44858151的博客 891

【NAS for PVE _04】安装TrueNAS

前篇说到如何调试 Proxmox VE 8.2 为安装虚拟机做准备,本篇主要讲述如何在 Proxmox VE 上安装 TrueNAS 系统,并开启NFS供其他系统挂载使用官网下载好TrueNAS系统镜像。

村口王师傅。 6144

ARM CoreLink 系列 5.1.1 -- CI-700 System Address Map 】

所有的CHI 命令都包含一个 Source ID 和 Target ID, 其中 Source ID 可以来自于 RN Node, Target ID 可以来自于HN node或者其他 SN node. 其中 Target ID 是通过 SAM解析传入的地址得到的。对于 CI-700中的所有 RN Node 中的 SAM 多会进行配置,因为RN Node 访问的是整个地址空间,不同的地址空间会有不同的属性(I/O, DRAM),所以会对RN SAM 配置多个不同属性的区域。

CodingCos的博客 771

GET和POST的区别

GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。 你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该用什么。 当你在面试中被问到这个问题,你的内心充满了自信和喜悦。 你轻轻松松的给出了一个“标准答案”: GET在浏览器回退时是无害的,而POST会再次提交请求。 GET产生的URL地址可以被Boo

学Java,找哪吒 10万+

【2026年得物春招算法岗- 4月18日 -第二题- 老张爬山】(题目+思路+Java&C++&Python解析+在线测试)

这篇文章介绍了一个动态规划问题,解决老张在n天内安排爬山计划以最大化愉悦值的问题。题目允许最多k次打破"不能连续两天爬山"的规则限制。 摘要要点: 使用三维动态规划数组dp[i][j][s],表示第i天结束时已用j次机会、当天状态为s(0不爬/1爬)时的最大愉悦值 状态转移考虑两种情况:当天不爬山时取前一天两种状态的最大值;当天爬山时分别处理前一天不爬山和爬山(需消耗机会)的情况 最终结果为考虑所有可能用掉的k次机会后,最后一天两种状态的最大值 提供了Python、Java和C++三种实

m0_73659489的博客 1357

HTTP中GET和POST的区别

从学习编程开始,关于get请求和post请求的问题就一直困扰着我。今天就简单说说两者的区别。 先来看看HTTP是什么? HTTP: HTTP协议:(HyperText Transfer Protocol超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的www文件都必须遵守的标准。是基于TCP/IP的关于数据在万维网中如何让通讯的协议。 HTTP总共有8中请求方法,我们最常见也是最...

cuiwkong的博客 1万+

ROS从入门到精通2-7:Gazebo仿真之动态生成障碍物

动态生成障碍物在机器人导航、碰撞避障算法测试、多机协同等领域应用广泛,可以帮助开发人员快速测试,本文介绍该技术并提供基于ROS Gazebo的实现

FRIGIDWINTER的博客 4899

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

java get与post区别_java中get和post的区别

HTTP POST GET本质区别一原理区别一般在浏览器中输入网址访问资源都是通过GET方式;在FORM提交中,可以通过Method指定提交方式为GET或者POST,默认为GET提交Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETEURL全称是资源描述符,我们可以这样认 为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,P...

weixin_32528123的博客 1078

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

java get与post区别_POST和GET区别

*每个HTTP-GET和HTTP-POST都由一系列HTTP请求头组成,这些请求头定义了客户端从服务器请求了什么,而响应则是由一系列HTTP请求数据和响应数据组成,如果请求成功则返回响应的数据。*HTTP-GET以使用MIME类型application/x-www-form-urlencoded的urlencoded文本的格式传递参数。Urlencoding是一种字符编码,保证被传送的参数由遵...

weixin_36332320的博客 3382

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

get 和 post 区别

目录 一、基本答案 二、GET,POST请求过程有些不同: 三、网友仔细分析后不同的理解 四、拓展: 要克服生活的焦虑和沮丧,得先学会做自己的主人。 一、基本答案 1. GET把参数包含在URL中,POST通过request body传递参数。 2. GET在浏览器回退时是无害的,而POST会再次提交请求。 3. GET请求参数会被完整保留在浏览器历史记录里,而POST中的...

日入上万 3682

Get和Post的区别

GET和POST是 HTTP 协议中两种常用的请求方法,主要用于客户端与服务器之间的数据传输。在面试中常会被问到,Get和Post的区别,下面就来详细介绍一下。

2301_79446157的博客 1981

POST 和 GET 请求的区别

2、 POST 是被设计用来向上放东西的,而GET是被设计用来从服务器取东西的,GET也能够向服务器传送较少的数据,而Get之所以也能传送数据,只是用来设计告诉服务器,你到底需要什么样的数据.POST的信息作为HTTP 请求的内容,而GET是在HTTP 头部传输的;数据包含在请求体中。而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点。在网络环境好的情况下,发送一次包的时间和发送两次包的时间差可以忽略,在网络环境差的情况下,发送两次包的TCP在验证数据的完整性上,有非常大的优势。

weixin_52793468的博客 7280

GET、 POST的区别

两种 HTTP 请求方法:GET 和 POST 在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST。 GET - 从指定的资源请求数据。 POST - 向指定的资源提交要被处理的数据 1. get是从服务器上获取数据,post是向服务器传送数据。 get 和 post只是一种传递数据的方式,get也可以把数据传到服务器,他们的本质都是发送请求和接收结果。只是组织格式...

weixin_44233369的博客 358

get,post区别

 Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。   1.根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的。   (1).所谓安全的意味着该操作用于获取信

huitest的博客 1250
上一篇: 127.0.0.1:端口号,访问不到页面
下一篇: nginx代理
inDazzle
博客等级 码龄6年 1粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值