当我做php artisan routes时,我的应用程序的GET请求有一个|HEAD。拥有|HEAD的目的是什么?
Routes.php
+--------+----------------------------------+------------------------------+--------------------------------------+----------------+---------------+
| Domain | URI | Name | Action | Before Filters | After Filters |
+--------+----------------------------------+------------------------------+--------------------------------------+----------------+---------------+
| | GET|HEAD / | home | HomeController@home | | |
| | GET|HEAD user/{username} | profile-user | ProfileController@user | | |
| | GET|HEAD account/change-password | account-change-password | AccountController@getChangePassword | auth | |
| | GET|HEAD asset/encode-file/{id} | encode-file | EncodeController@getEncode | auth | |
| | GET|HEAD asset/edit-file/{id} | edit-file | AssetController@getEdit | auth | |
| | GET|HEAD asset/delete-file/{id} | delete-file | AssetController@deleteDestroy | auth | |
| | GET|HEAD asset/upload-file-form | upload-file-form | AssetController@getUploadCreate | auth | |
| | GET|HEAD asset/library | asset-library | AssetController@getAssetLib | auth | |
| | GET|HEAD account/sign-out | account-sign-out | AccountController@getSignOut | auth | |
| | GET|HEAD account/activate/{code} | account-activate | AccountController@getActivate | guest | |
| | GET|HEAD account/forgot-password | account-forgot-password | AccountController@getForgotPassword | guest | |
| | GET|HEAD account/recover/{code} | account-recover | AccountController@getRecover | guest | |
| | GET|HEAD account/sign-in | account-sign-in | AccountController@getSignIn | guest | |
| | GET|HEAD account/create | account-create | AccountController@getCreate | guest | |
+--------+----------------------------------+------------------------------+--------------------------------------+----------------+---------------+发布于 2014-03-01 19:11:12
以下函数来自Laravel'的Illuminate\Routing\Router.php类,当您使用Route::get()方法为站点/应用程序添加路由时,Laravel为url添加两种方法,这意味着,使用get方法注册的这些url可以同时使用GET和HEAD D9Illuminate\Routing\Router.php>方法访问,而头只是另一个HTTP谓词/方法,用于发出HEAD请求。
/**
* Register a new GET route with the router.
*
* @param string $uri
* @param \Closure|array|string $action
* @return \Illuminate\Routing\Route
*/
public function get($uri, $action)
{
return $this->addRoute(array('GET', 'HEAD'), $uri, $action);
}发布于 2016-11-27 21:46:49
HEAD请求几乎与GET请求相同,它们仅在一个基本方面有所不同:响应不应包含有效载荷(实际数据)。
这使得HEAD HTTP谓词对于管理当前缓存数据的有效性至关重要。
如果您的数据不是最新的,HEAD请求响应中的标头字段的值将警告您。之后,您可以发出适当的GET请求,检索更新的数据。
例如,可以通过观察Content-Length字段或Last-Modified字段来实现这一点。
在处理大型有效载荷时,缓存数据并在实际的HEAD请求之前进行GET请求以检查当前数据的有效性,可以为数据消耗节省大量资金。
您将准确地知道何时检索全部有效载荷。
最大的问题是:当您使用HEAD Route::get()**?**时,为什么要将和 HTTP谓词结合起来?
您可以使用Route::match('HEAD')注册您的头请求,但我觉得奇怪的是,我们没有Route::head()。
来自HTTP:
HEAD方法与GET相同,只是服务器不能在响应中返回消息体。HTTP头中包含的响应头请求的信息应该与响应GET请求而发送的信息相同。这种方法可以用于获取请求所隐含的实体的信息,而不需要转移实体-主体本身。此方法通常用于测试超文本链接的有效性、可访问性和最近的修改。 对HEAD请求的响应可以缓存,因为响应中包含的信息可以用于从该资源更新先前缓存的实体。如果新字段值指示缓存实体与当前实体不同(如内容长度、内容-MD5、ETag或最后修改的更改所指示的那样),则缓存必须将缓存条目视为陈旧。
https://stackoverflow.com/questions/22118598
复制相似问题