对比项\verb | CONNECT | OPTIONS | TRACE | HEAD | GET | POST | PUT | PATCH | DELETE |
---|---|---|---|---|---|---|---|---|---|
Request has body | x | x | x | x | x | √ | √ | √ | May |
Successful response has body | √ | √ | x | x | √ | √ | x | √ | May |
Safe | x | √ | x | √ | √ | x | x | x | x |
Idempotent | x | √ | √ | √ | √ | x | √ | x | √ |
Cacheable | x | x | x | √ | √ | [1] | √ | x | x |
Allowed in HTML forms | x | x | x | x | √ | √ | √ | x | x |
[1]: Only if freshness information is included
上述表格整理自 MDN。
如果你再遇到像 "请讲一下HTTP PUT 和 POST的区别?"这样的问题, 是不是就可以按照这个表格回答了,清晰明了。
小注:
PUT 和 POST 都可以用于更新资源, 举例来说: POST 是作用在一个集合资源之上的(/articles),多次 POST 会生成多篇文章;而PUT操作表示对资源进行整体覆盖,是作用在一个具体资源之上的(/articles/123), 对 id 为123 的文章只要每次PUT的内容相同,结果就是多次在123上进行同样的更新。
网友评论