📜  说明 HTTP 响应的核心组件 ?

📅  最后修改于: 2022-05-13 01:56:34.837000             🧑  作者: Mango

说明 HTTP 响应的核心组件 ?

你有没有想过应用程序的前端如何与后端通信以获取数据或执行某些操作?它是通过 API 请求完成的。 API 代表应用程序编程接口。我们的客户端和 API 之间的通信是使用 HTTP 请求实现的,然后是对客户端的响应。请求和响应都遵循一定的语法和结构,以简化通信过程。

每当我们的客户端应用程序想要与服务器通信时,它都会使用 HTTP 协议向服务器发送一条消息,这也称为 HTTP 请求。服务器根据该消息执行消息要求的某些操作,然后通过消息回复客户端,也称为HTTP Response

下面是描述请求-响应周期的图像:

HTTP 请求-响应周期图

HTTP 响应的结构:如上所述,HTTP 响应具有遵循的特殊结构,以便客户端可以轻松理解它。存在一种每个人都遵循的通用语言,因此人与人之间没有交流障碍。 HTTP 响应大致有 3 个主要组件:

  • 状态行
  • 标头
  • 主体(可选)

整个 HTTP 响应如下图所示:

HTTP 响应剖析

让我们一一介绍:

状态行:状态行的示例如下:

HTTP/1.1 200 OK

状态行包含三个重要组件——HTTP 版本、HTTP 响应代码和原因短语。

  • HTTP 版本: HTTP 版本号显示服务器试图使响应消息符合的 HTTP 规范。在上面的示例中, 1.1是 HTTP 版本。
  • HTTP 响应代码:它是一个 3 位数字,显示请求的结论。在上面的示例中,响应代码200表示请求的内容正常。我们经常遇到的一个非常流行的状态码是 404,它表示未找到请求的资源。
  • 原因短语:也称为状态文本,因为它以人类可读的形式总结了状态代码。

响应标头:响应标头包含有关作为响应返回的内容的信息以及有关发送它的服务器的数据。此信息有助于客户端/浏览器决定以何种方式使用响应数据。换句话说,标头可以说是与响应一起发送的元数据,以提供有关它的更多信息。

服务器可以根据需要发送尽可能多的标头。标头作为由冒号 ( : ) 分隔的键值对发送。虽然服务器可以根据需要发送尽可能多的标头,但最流行的响应标头是Content-Length、Content-Type、Date、Server、Set-Cookie 等等。

Date: Thu, 16 Jan 2016 08:16:18 GMT
Server: IBM_CICS_Transaction_Server/3.1.0(zOS)
Content-type: image/jpg

在上面的示例中,响应头显示了发送响应的日期和时间、发送响应的服务器以及发送的内容类型,这里是一个 jpg 图像文件。

正文在成功响应的情况下,响应消息的正文用于为客户端/用户提供请求中请求的资源。虽然正文是可选的,但它是客户端和服务器之间通信的最基本部分之一,并且大部分时间都是发送的。正文携带数据,可以是多种格式之一,例如json、html、image ,这在标题中相应指定。

如果出现一些错误,正文可能会提供错误的原因或成功完成请求所需的操作。有时,它可能有一个链接来引导用户到其他页面。