当前位置: 首页 > 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.mrgr.cn/news/78155.html

相关文章:

  • 什么是Spring?
  • java: itext8.05 create pdf
  • ES 和Kibana-v2 带用户登录验证
  • InfluxDB时序数据库笔记(一)
  • 大数据实战之Zookeeper集群
  • docker 容器运行Ruoyi-cloud
  • nodepad配置c/c++ cmd快速打开创建项目文件
  • 2024.11.26总结
  • JVM系列之OOM观测准备
  • 蓝桥杯练习题
  • c++学习:json库例子
  • 【C语言】关于 JavaScript 与 C语言在函数嵌套定义方面的差异探讨
  • 【2024】前端学习笔记19-ref和reactive使用
  • 技术文档,they are my collection!
  • 代码美学:MATLAB制作渐变色
  • 【消息序列】详解(7):剖析回环模式--设备测试的核心利器
  • Http 请求协议
  • 计算机毕业设计Python+大模型美食推荐系统 美食可视化 美食数据分析大屏 美食爬虫 美团爬虫 机器学习 大数据毕业设计 Django Vue.js
  • Linux -日志 | 线程池 | 线程安全 | 死锁
  • 【论文笔记】Number it: Temporal Grounding Videos like Flipping Manga
  • Springboot下导入导出excel
  • 【Google Cloud】Private Service Connect 托管式服务
  • Redis常见面试题总结(上)
  • JS小模块练习
  • CSS笔记(一)炉石传说卡牌设计1
  • HTML详解(1)