# 2. GET & POST

# GET & POST是什么

  • HTTP协议中发送请求的两种方法
  • 底层是TCP/IP,本质上是TCP连接

# 形象比喻

  • TCP:汽车
    • 用来传输数据
  • HTTP:交通规则(为了避免路上全是一模一样的汽车)
    • 设定几种服务类别【GET/POST/PUT/DELETE】
    • GET请求:给汽车贴上GET标签,把数据放在车顶url上
    • POST请求:给汽车贴上POST标签,把数据放在车厢里
  • 浏览器&服务器: 运输公司
    • 限制单次运输量来控制风险
    • 偷藏数据,有些会卸货有些直接忽略
  • 送货:GET跑一趟,POST跑两趟
    • GET:浏览器会把http header和data一并发送出去,服务器响应200
    • POST:浏览器先发送header,服务器响应100 continue; 浏览器再发送data,服务器响应200
GET POST
## 后退/刷新 无害 数据会被重新提交
## 缓存 ×
## 参数保留在浏览器历史中 ×
## 安全性 × √(参数不会保存在浏览器历史或web服务器日志)
限制数据长度 √(URL最大长度2048字符) ×
限制数据类型 √(只允许ASCII字符) ×
编码类型 application/x-www-form-urlencoded application/x-www-form-urlencoded or multipart/form-data