当前位置: 首页 > article >正文

HTTP中GET和POST的区别是什么?

HTTP定义:

GET:用于获取资源,通常用于请求数据而不改变服务器的状态

POST:用于提交数据到服务器,通常会改变服务器的状态或产生副作用(如创建或更新资源)

参数传递方式:

GET:参数通过URL拼接传递,暴露在请求URL中,具有可见性,长度有限(取决于浏览器和服务器,默认2048字节)

POST:参数放在请求体中,参数不可见,且理论上长度没有限制(实际上服务器有配置限制,如Nginx默认限制1MB),更适合传输大量或敏感的信息(POST请求也可以在URL上放参数)

安全性:

GET:参数可见,数据容易暴露在浏览器历史记录、日志和缓存中,不适合传递敏感信息。

POST:数据放在请求体中相对安全,适用HTTPS能保证数据加密传输

幂等性:

GET:幂等(重复请求不会改变服务器状态)

POST:非幂等(多次请求可能导致重复创建资源或执行多次相同操作)

TCP数据包:

GET:产生一个TCP数据包

POST:产生两个TCP数据包

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

而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)

也就是说,GET只需要汽车跑一趟就把货送到了,而POST得跑两趟,第一趟,先去和服务器打个招呼“嗨,我等下要送一批货来,你们打开门迎接我”,然后再回头把货送过去。


http://www.kler.cn/a/411464.html

相关文章:

  • day04 企业级Linux安装及远程连接知识实践
  • Hot100 - 字母异位词分组
  • vue3 uniapp 扫普通链接或二维码打开小程序并获取携带参数
  • Windows系统电脑安装TightVNC服务端结合内网穿透实现异地远程桌面
  • 网络安全与加密
  • 【Leetcode 每日一题】146. LRU 缓存(c++)
  • 【排版教程】Word、WPS 分节符(奇数页等) 自动变成 分节符(下一页) 解决办法
  • 流媒体中ES流、PS流 、TS流怎么理解
  • Vscode终端出现在此系统上禁止运行脚本解决方法
  • 快速排序 归并排序
  • spring boot框架漏洞复现
  • 《白帽子讲Web安全》13-14章
  • 解决:Openstack创建实例进入控制台报错Something went wrong, connection is closed
  • 6.STM32之通信接口《精讲》之IIC通信---硬件IIC(STM32自带的硬件收发器)
  • Flink cdc同步增量数据timestamp字段相差八小时(分析|解决)不是粘贴复制的!
  • 2024APMCM亚太杯数学建模C题【宠物行业】原创论文分享
  • kali Linux中foremost安装
  • 实现乱序函数?(面试常考)
  • 计算(a+b)/c的值
  • [STM32]从零开始的STM32 FreeRTOS移植教程
  • 运维面试整理总结
  • 2024年11月22日Github流行趋势
  • 基于Java+SpringBoot+Mysql在线简单拍卖竞价拍卖竞拍系统功能设计与实现九
  • html转成图片
  • 「Mac玩转仓颉内测版29」基础篇9 - 数组类型详解
  • 【论文解读】CVPR 2024 DSL-FIQA :全新人脸面部图像质量评估算法(附论文地址)