HTTP_day04

98 阅读2分钟

请求方法

请求方法位于请求头中。

HTTP/1.1 规定了 8 种 请求方法 , 单词必须都是大写

  • GET : 获取资源,读取 或者 下载数据。
  • HEAD : 获取资源的元信息。只返回首部。
  • POST : 向服务器写入/上传数据。
  • PUT : 向服务器写入资源。
  • DELETE : 删除 URL 指定的资源。
  • OPTIONS : 列出对资源实行的方法
  • TRACE : 观察 HTTP 报文到服务器的最终数据。
  • CONNECT : 建立特殊的连接隧道。

请求方法 , 资源的掌控都在服务器,客户端自然不能说请求就请求,WEB服务器掌管资源的决定权。

常用方法

GET / HEAD

HTTP/0.9 到现在都存在的方法

GET 和 HEAD 通常搭配 URI 和其他头部字段 进行使用.

GET 获取资源,也就是 body , 例如 h5 浏览器会解析他生成对应的页面。

HEAD ,也是获取资源 , 但只是获取资源的元数据,也就是说服务器只会返回响应头(与 GET 方法返回的响应头完全一样)。 常用于 检查文件是否存在/检查文件是否有最新版本。 用于许多不真正需要资源的场景。

POST / PUT

PUT 和 POST 通常搭配 URI 使用,向指定的 URI 写入数据,也就是写入 body 里面的东西。

对于 PUT 和 POST , PUT 后面的一次请求 会 覆盖 前面的一次请求。用来 修改资源.而 POST 并不会覆盖。用来增加资源.

PUT 常用于更具体的 URI , 明确资源路径

POST 则是只知道资源目录,HTTP服务器会生成一个唯一的URI

关于 POST 和 PUT 的区别 : 推荐文章

POST 可以理解为 数据库 INSERT , PUT 可以理解为 UPDATE;

DELETE

删除资源~ 这里指的是 物理删除 删了就真的没有了 一般我们进行逻辑删除。

安全性 和 幂等性

在 HTTP 协议里,所谓的“安全”是指请求方法不会“破坏”服务器上的资源,即不会对服务器上的资源造成实质的修改。

GET / HEAD 方法 是 安全的 , 他们对服务器上的资源进行只读操作。前提是,编码人员不曲解这两个请求方法的含义。

POST/PUT/DELETE , 会 增加 修改 和删除资源。 是不安全的。

幂等性

多次执行的结果是相同的。

GET 和 HEAD 都是请求同一份资源,显然每次获取的信息是相同的,是幂等的。

DELETE 删除一份资源,执行多次都是没有了这个资源,也是幂等的。

POST 新增资源,多次提交数据,会生成多个资源,不是幂等的。

PUT 修改资源,多次提交相同PUT请求,资源还是和第一次修改的一样 是 幂等的。