Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我应该使用Put、Patch和Delete吗?I';我在读一些东西,这让我想知道它是否';使用它们是很传统的_Php_Laravel - Fatal编程技术网

Php 我应该使用Put、Patch和Delete吗?I';我在读一些东西,这让我想知道它是否';使用它们是很传统的

Php 我应该使用Put、Patch和Delete吗?I';我在读一些东西,这让我想知道它是否';使用它们是很传统的,php,laravel,Php,Laravel,到目前为止,我只使用GET和POST来做任何事情,然而,有人提醒我,如果我也使用Put、Patch和Delete会更好。我已经看过了,并且意识到他们会如何帮助我。例如,我的路线看起来会更好,因为我有: Route::get('/image/{id}', 'PagesController@specificImage')->name('specificImage'); Route::delete('/image/{id}', 'ArtworkController@deleteImage')-&

到目前为止,我只使用GET和POST来做任何事情,然而,有人提醒我,如果我也使用Put、Patch和Delete会更好。我已经看过了,并且意识到他们会如何帮助我。例如,我的路线看起来会更好,因为我有:

Route::get('/image/{id}', 'PagesController@specificImage')->name('specificImage');
Route::delete('/image/{id}', 'ArtworkController@deleteImage')->name('deleteImage');
与此相反:

Route::get('/image/{id}', 'PagesController@specificImage')->name('specificImage');
Route::get('/deleteImage/{id}', 'ArtworkController@deleteImage')->name('deleteImage');
然而,我读过一些让我怀疑的东西

  • 我已经读到Apache(我正在使用)不允许PUT和DELETE,除非您对htaccess文件做一些更改。我想这是第二个原因

  • 我已经读到PUT和DELETE是不安全的

  • 我读过HTML表单只允许GET和POST。我知道你可以绕过使用隐藏的输入字段,这些字段的值中有你想要使用的方法,但我仍然要问自己,为什么默认情况下禁止使用PUT和DELETE


  • 你应该或不应该使用什么最终取决于你的偏好。HTTP方法的使用可以被认为是相当固执己见的。此外,还有相当多的问题和资源

    但让我尽力回答你的问题

    请求方法在中指定

    请求方法令牌是请求的主要来源 语义学;它表明了客户的目的 此请求以及客户期望的成功请求 结果

    如前所述,您可以忽略它们,并将目的绑定到URL。是否评估请求方法并对其采取行动取决于服务器端实现,但如您所述

    例如,我的路线看起来会更好,因为我会有这个

    关于你(可能)最重要的问题:

  • 我已经读到PUT和DELETE是不安全的
  • 我无法证实那个说法。请求方法只是HTTP请求的一个简单头标记,如果响应者不计算它,它不会改变请求的行为,也不会影响响应者

    根据我个人的经验,许多小公司和开发人员不使用http方法,而只使用get和post,因为它们是默认html表单支持的唯一方法。这意味着,如果要发送PUT或DELETE,必须通过javascript采取其他措施

    我已经读到Apache(我正在使用)不允许PUT和DELETE,除非您对htaccess文件做一些更改。我想这是第二个原因

    在某些apache默认安装中,需要显式允许PUT和DELETE。例如,见。至于为什么它不是默认的,我只能假设在很多情况下,它无论如何都不会被使用,并减少了处理过的、但不需要的请求的数量

    现在关于

  • 我读过HTML表单只允许GET和POST。我知道你可以绕过使用隐藏的输入字段,这些字段的值中有你想要使用的方法,但我仍然要问自己,为什么默认情况下禁止使用PUT和DELETE
  • HTML表单只支持GET和POST。要绕过这一点,您不能使用隐藏的输入字段,这只会填充请求体,但必须使用javascript并显式设置请求方法。 我发现这是关于HTML不支持PUT和DELETE的原因。 两个要点: 1.缓存是一个问题,因为POST和GET应该是可缓存的,但PUT和DELETE不应该 2.没有人费心详细说明它

    长话短说

    使用PUT和DELETE可以帮助您编写干净的代码和web界面。通过为请求添加更多语义,可以帮助您。
    你是否使用它们取决于你自己。忽略它们的网站可能比使用它们的网站更多,但随着规模的增加,好处会增加。

    Laravel通过表单方法欺骗绕过了上述所有问题:是否使用它们完全取决于你,真的-没有正确的答案,只是一个意见问题。比如说,我开始在一家公司作为一名网络开发人员工作。我是否需要使用PUT、PATCH和DELETE?更高级的开发者会使用它们吗?有些是,有些不是。没有明确的共识。学习如何使用这两种方法需要五分钟,当你得到一份web开发工作时,你会在五分钟内发现你的公司更喜欢哪种方法。