编程语言
首页 > 编程语言> > HTTP协议的PUT和DELETE以及它们在PHP中的用法

HTTP协议的PUT和DELETE以及它们在PHP中的用法

作者:互联网

介绍

我读过以下内容:

Hypertext Transfer Protocol (HTTP) is the life of the web. It’s used every time you transfer a document, or make an AJAX request. But HTTP is surprisingly a relative unknown among some web developers.

The HTTP verbs comprise a major portion of our “uniform interface” constraint and provide us the action counterpart to the noun-based resource. The primary or most-commonly-used HTTP verbs (or methods, as they are properly called) are POST, GET, PUT, and DELETE.

咦?

好吧,我们突然忘记了事情.

他们说,PUT和DELETE.我只听说过POST和GET,从来没有在我看过的任何PHP代码中看到像$_PUT或$_DELETE这样的东西.

我的问题

这些方法(PUT)和(DELETE)是什么,如果可以在PHP中使用它们,我将如何解决这个问题.

注意:我知道这不是一个真正的问题但我总是抓住一个学习机会,如果我看到一个,并且非常想学习在PHP中使用这些方法,如果可能的话.

解决方法:

What are these methods (PUT) and (DELETE) for…

有很多词要用来解释这个问题,而且我还不够熟练,但是已经发布过,快速回顾一下HTTP specification所描述的内容.

该协议基本上说:

>当您需要访问资源并检索数据时使用GET,而您不必修改或更改此数据的状态.
>当您需要将一些数据发送到服务器时使用POST.防爆.从表单中将这些数据保存到某处.
>当您需要访问资源并从响应中仅检索Headers而不使用任何资源数据时,请使用HEAD.
>当您需要替换该系统上已存在的某些数据的状态时,请使用PUT.
>当您需要删除该系统上的资源(相对于您发送的URI)时,请使用DELETE.
>当您需要从资源获取通信选项时使用OPTIONS,以便检查该资源的允许方法.防爆.我们将它用于CORS请求和权限规则.
>您可以阅读该文档中剩余的两种方法,抱歉我从未使用过它.

基本上,协议是一组规则,您应该从应用程序中使用它来遵守它.

… and if it’s possible to
use them in PHP, how would I go about this.

从您的应用程序中,您应该检索与$_SERVER [‘REQUEST_METHOD’]一起使用的方法并因此做出反应.

一些处理不支持PUT或DELETE方法的浏览器的应用程序使用这个技巧,一个来自html的隐藏字段,其值为ex.:

<input name="_method" type="hidden" value="delete" />

因此,从应用程序中,您现在可以将其识别为DELETE请求.

按照PHP处理参数的简单描述:

当您(您的浏览器,您的客户端)向HTTP服务器请求资源时,您必须使用协议(HTTP)接受的方法之一.所以你需要通过:

>一种方法
>资源的Uri
>请求标题,如用户代理,主机,内容长度等
>(请求的可选主体)

所以请求应该如下所示:

GET /something/index.php?maybe=aparameter

现在,在您的应用程序中,PHP从此GET请求中获取参数并将它们插入到超全局(可访问的应用程序中)数组中.所以你可以访问返回’aparameter`的$_GET [‘maybe’].

在POST请求的情况下,您以类似的方式向HTTP服务器请求资源但具有重要区别.您在请求正文中提供数据:

POST /something/index.php

(body) maybe=aparameter

现在,在您的应用程序中,来自此POST请求的PHP获取参数并将它们插入到超全局(可访问的应用程序中)数组中.所以你可以访问返回’aparameter`的$_POST [‘maybe’].

请特别注意响应状态代码(例如,如果您收到了PUT请求并且您已经更新了该资源而没有错误,则应该返回204状态 – 无内容 – ).

标签:php,http,http-put,http-delete,http-options-method
来源: https://codeday.me/bug/20190925/1817300.html