---
title: HTTP中GET和POST的区别是什么
published: 2025-09-21
description: ''
image: ''
tags: [计算机网络,HTTP]
category: '计算机网络'
draft: false 
lang: ''
---

# HTTP中GET和POST的区别是什么
## 从HTTP定义看
从HTTP定义看
GET用来获取资源。通常用来请求数据，不改变服务器状态
POST用来提交数据到服务器，通常会改变服务器状态或者产生副作用（比如创建或者更新资源）

## 参数传递
GET是通过URL拼接来实现参数传递的，暴露在请求URL中，有可见性，长度有限。（2048字节）
POST把参数放在请求体里面，通常不可见而且长度理论上也没有限制，更适合传递大量数据（nginx默认限制为1M）。

## 安全性
GET： 参数可见，数据容易暴露在浏览器历史记录，日志和缓存中，不适合传递敏感信息。
POST： 数据放在请求体中，相对安全，但需要HTTPS才能保证数据加密传输。

## 幂等性
GET: 幂等的（重复请求不会改变服务器状态）
POST: 非幂等的（多次请求可能导致重复创建资源或者执行多次相同的操作）


## RESTful API设计中的角色分工
- GET 用来查询或者检索资源数据
- POST： 用来创建资源或者执行某些动作
- PUT和PATCH： 用来更新资源 PUT替换整个资源，PATCH更新部分资源
- DELETE: 用来删除资源。

