深圳JAVA培训-高端面授深圳JAVA培训机构
云和教育:云和数据集团高端IT职业教育品牌
  • 华为
    授权培训中心
  • 腾讯云
    一级认证培训中心
  • 百度营销大学
    豫陕深授权运营中心
  • Oracle甲骨文
    OAEP中心
  • Microsoft Azure
    微软云合作伙伴
  • Unity公司
    战略合作伙伴
  • 普华基础软件
    战略合作伙伴
  • 新开普(股票代码300248)
    旗下丹诚开普投资
  • 中国互联网百强企业锐之旗
    旗下锐旗资本投资

什么是状态行、响应头和响应正文?

  • 发布时间:
    2022-12-27
  • 版权所有:
    云和教育
  • 分享:

Web服务器返回给浏览器的响应信息由4个部分组成,分别是状态行、响应头、空行以及响应正文。HTTP响应的格式如图1所示。

http协议响应协议

下面是通过浏览器访问百度百科中词条python时,Web服务器返回的响应信息,具体内容如下。

HTTP/1.1 200 OK
Connection: keep-alive
Content-Encoding: deflate
Content-Security-Policy-Report-Only: default-src https:.
Content-Type: text/html; charset=UTF-8
Date: Thu, 15 Jul 2021 06:25:42 GMT
Server: Apache
Vary: Accept-Encoding
Transfer-Encoding: chunked

<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />.

上述响应信息中,第1行代码是状态行,第2~9行代码是响应头,第10行是空行,第11~14行代码是响应正文。需要注意的是,即使响应信息中没有响应正文,也必须在末尾加上空行。

下面分别对状态行、响应头和响应正文进行介绍。

1.状态行

上述响应信息的状态行的具体内容如下。

HTTP/1.1 200 OK

在状态行中,HTTP/1.1表示HTTP的版本号,200表示响应状态码,OK表示响应状态码的简短描述。

响应状态码代表服务器的响应状态,它的作用是告知浏览器请求Web资源的结果,如请求成功、请求异常、服务器处理错误等。响应状态码及说明如下表所示。

响应状态码及说明

1671601839543_响应状态码.png

2.响应头

上述响应信息中,状态行下面的部分便是若干个响应头信息。响应头的格式与请求头的格式相同。关于响应头中的常用字段及常用值的介绍如下。

( 1) Cache-Control: must-revalidate、 no-cache, private。

Cache-Control表示服务器告知浏览器当前的HTTP 响应是否可以缓存,取值为must-revalidate表示在一个缓存过期之后,不能直接使用这个过期的缓存,必须检验之后才能使用;取值为no-cache表示浏览器可以缓存资源,每次使用缓存资源前都必须重新验证其有效性;取值为private表示响应只能被单个用户缓存,不能作为共享缓存。

(2) Connection: keep-alive、 closed。

Connection表示浏览器是否使用持久HTTP连接,取值为keep-alive表示使用持久连接;取值为closed 表示不使用持久连接。

(3) Content-Encoding: gzip、 compress, identity。

Content-Encoding表示服务器对特定媒体类型的数据进行压缩,取值为gzip表示采用Lempel-Ziv 压缩算法;取值为compress表示采用Lempel-Ziv-Welch 算法;取值为identity 表示数据未经压缩或修改。

(4) Content-Type: text/html;charset=UTF-8。

Content-Type表示服务器告知浏览器实际返回的内容的类型,取值为text/html;charset=UTF-8表示服务器返回资源文件的类型为text/html,字符编码格式为UTF-8。

3.响应正文

响应正文是服务器返回的具体数据,常见的数据是HTML源代码。浏览器在接收到HTTP响应后,会根据响应正文的不同类型进行不同的处理。如果响应正文是DOC文档,那么浏览器会借助安装在本机的Word程序打开这份文档;如果响应正文是RAR压缩文件,那么浏览器会弹出一个下载窗口让用户下载解压软件;如果响应正文是HTML文档,那么浏览器会在自身的窗口中展示该文档。