37 lines
1.4 KiB
Markdown
37 lines
1.4 KiB
Markdown
---
|
||
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: 用来删除资源。
|
||
|