使用ASP.NET Core 3.x 构建 RESTful API P16 HTTP HEAD

使用ASP.NET Core 3.x 构建 RESTful API P16 HTTP HEAD


博客园文章Id:


HTTP HEAD

  • HEAD 和 GET 几乎是一样的.
  • 重要的不同: HEAD 的 API 不应该返回响应的 body.
  • HEAD 可以用来在资源上获取一些信息.

HTTP HEAD 方法请求URI是不会返回Body的但是是会返回Headers,即 Response 的Headers(响应头),这个方法就是为了获取返回的响应头,参考如下代码:

/// <summary>
/// 获取所有公司信息
/// </summary>
[HttpGet]
[HttpHead]  //此处写HttpHead,又写HttpGet 表示此方法即支持HttpHead请求,也支持HttpGet请求
public async Task<ActionResult<IEnumerable<CompanyDto>>> GetCompanies()
{
            var companies = await this._companyRepository.GetCompaniesAsync();

            if (companies == null)
            {
                return NotFound();  // 404 NotFound  
            }

            //T是目标类型, 参数中是源类型
            var result = this._mapper.Map<IEnumerable<CompanyDto>>(companies);

            return Ok(result);
}

使用HttpGet请求:

获取到的返回结果:

获取到的Response Body
获取到的Response Body

获取到的返回的Headers:

获取到的Response Headers
获取到的Response Headers

我们可以发现返回的Headers里面包含了对Body的描述信息

body相关的描述信息
body相关的描述信息

使用HTTP HEAD请求:

并没有返回Body信息:

并没有返回Response Body信息
并没有返回Response Body信息

但是返回了Headers信息:

返回Response Head信息
返回Response Head信息

根据上面的图片我们可以了解到,和Body相关的Head的描述也没有了.

根据验证得出,HttpHead方法也会和HttpGet一样执行完整的Action方法体,所以就性能而言,两者是意义的,只是HttpHead 不会返回请求的Body信息.

-上述文档参考自
HTTPHEAD

猜你喜欢

转载自www.cnblogs.com/HelloZyjS/p/12676569.html