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

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.lryc.cn/news/492107.html

相关文章:

  • day04 企业级Linux安装及远程连接知识实践
  • jvm核心组件介绍
  • uname -m(machine) 命令用于显示当前系统的机器硬件架构(Unix Name)
  • Pgsql:json字段查询与更新
  • 类的加载机制
  • 基于vite创建的react18项目的单元测试
  • fiddler抓包工具与requests库构建自动化报告
  • Docker login 报证书存储错误的解决办法
  • 【自动化Selenium】Python 网页自动化测试脚本(上)
  • 什么是MyBatis?
  • TortoiseGit 将本地已有仓库推送到远程
  • 腾讯云OCR车牌识别实践:从图片上传到车牌识别
  • TailwindCss 总结
  • Java与C#
  • leetcode:222完全二叉树的节点个数
  • [STM32]从零开始的STM32 FreeRTOS移植教程
  • java——Tomcat连接池配置NIO、BIO、APR
  • 跨域相关的一些问题 ✅
  • RPC学习
  • coe文件转mif(c语言)
  • 【leetcode】动态规划
  • 介绍一下atoi(arr);(c基础)
  • docker入门学习笔记
  • 使用Python和Pybind11调用C++程序(CMake编译)
  • tableau-制作30个图表
  • 2024APMCM亚太杯数学建模C题【宠物行业】原创论文分享
  • C语言解析命令行参数
  • 推荐一款龙迅HDMI2.0转LVDS芯片 LT6211UX LT6211UXC
  • libmodbus 源码学习笔记
  • 通用网络安全设备之【防火墙】