HTTP03http常用方法

1.常见HTTP方法有哪些?使用场景分别是什么?
2.GET与POST有什么区别?
3.什么是RESTful API?

常见Http方法

  • GET
  • POST
  • PUT
  • HEAD
  • DELETE
  • OPTIONS
  • CONNECT

RESTful API

表现层状态转换(英语:Representational State Transfer,缩写:REST),API设计规范,HTTP方法与对应数据库增删改查对应

  • GET:读取(Read)
  • POST:新建(Create)
  • PUT:更新(Update)
  • PATCH:更新(Update),通常是部分更新
  • DELETE:删除(Delete)

范例

  • GET /books , 列出所有的图书
  • POST /books , 创建一本图书
  • PUT /books, 批量更新图书信息
  • DELETE /books, 删除所有图书
  • GET /books/10, 获取10号图书详细信息
  • PUT /books/10, 更新10号图书
  • PATCH /books/10, 更新10号图书
  • DELETE /books/10, 删除10号图书
PUT和PATCH有什么差别?

对于

1
2
3
4
{
"username": "xxx"
"email": "xxx@xxxx.com"
}

PUT修改传参,需包含全部参数

1
2
3
4
{
"username": "xxx"
"email": "xxx@vip.qq.com"
}

PATCH修改传参,只需要传递需要修改的参数

1
2
3
{
"email": "hunger@vip.qq.com"
}

另外推荐在URL中强制加入版本号,如

GET /v1/books

Form表单支持哪些方法

form表单只支持 post 和get。但是可以通过变通的方法,让服务器知道你本意是想做什么。

1
2
3
<form action="/books" method="POST">
<input type="hidden" name="_method" value="PUT">
</form>

HTTP-持久连接

1
2
3
4
GET / HTTP/1.1
Host: www.baidu.com
Connection: keep-alive
...

一个请求的过程是

  • step01 三次握手 建立连接
  • step02 HTTP request / response
  • step03 四度挥手 断开连接

每次请求都经历这些过程,握手很频繁。损耗时间

通过添加 Connection: keep-alive 代表建立连接后,你们以后别再次握手挥手了,直接发请求就行了,等都ok了 在挥手停下来