学科分类
目录
PHP基础

HTTP响应

服务器接收到请求数据后,将处理后的数据返回给客户端,这就是HTTP响应消息。HTTP响应也分为4部分,分别是响应行、响应头、空行和响应体等,具体如下。

  • 响应行:位于HTTP响应消息的第一行,用于告知客户端本次响应的状态。
  • 响应头:告知浏览器本次响应的基本信息,包括服务程序名,内容的编码格式、缓存控制等。
  • 空行:用来分隔响应头和响应体。
  • 响应体:服务器给浏览器返回的数据。

下面以访问百度为例,查看响应信息。具体如图1所示。

img

图1 HTTP响应头信息

在图4-3中,第一行是响应行,响应行的格式为协议版本和状态码,“HTTP/1.1”是协议版本,“200”是状态码,“OK”是状态的描述信息。

响应状态码表示服务器对客户端请求的各种不同的处理结果和状态,由一个三位十进制数表示。响应状态码共分为5个类别,通过最高位1~5来分类,其具体作用如下。

  • 1xx:成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程。
  • 2xx:成功接收请求并已完成整个处理过程。
  • 3xx:未完成请求,客户端需要进一步细化请求。
  • 4xx:客户端的请求有错误。
  • 5xx:服务器端出现错误。

HTTP协议定义的状态码非常多,对于初学者来说无需每个都要深入研究,了解在开发过程中,经常遇到的一些状态码即可。具体如表1所示。

表1 常见响应状态码

状态码 含义 说明
200 正常 客户端的请求成功,响应消息返回正常的请求结果
403 禁止 服务器理解客户端的请求,但是拒绝处理。通常由服务器上文件或目录的权限设置导致
404 找不到 服务器上不存在客户端请求的资源
500 内部服务器错误 服务器内部发生错误,无法处理客户端的请求

位于响应行后面的是响应头信息,常见的HTTP响应头如表2所示。

表2 常见HTTP响应头

响应头 含义
Server 服务器的类型和版本信息
Date 服务器的响应时间
Expires 控制缓存的过期时间
Location 控制浏览器显示哪个页面
Accept-Ranges 服务器是否支持分段请求,以及请求范围
Cache-Control 服务器控制浏览器如何进行缓存
Content-Disposition 服务器控制浏览器以下载方式打开文件
Content-Encoding 实体内容的编码格式
Content-Length 实体内容的长度
Content-Language 实体内容的语言和国家名
Content-Type 实体内容的类型和编码类型
Last-Modified 请求文档的最后一次修改时间
Transfer-Encoding 文件传输编码
Set-Cookie 发送Cookie相关的信息
Connection 是否需要持久连接

HTTP请求头和响应头是浏览器与服务器之间交互的重要信息,由浏览器和Web服务器自动处理,通常不需要人为干预。但有时开发者会需要手动更改一些响应消息,以实现网站项目的某些功能需求,或者进行浏览器缓存方面的优化。

点击此处
隐藏目录