http 响应——迹忆客-ag捕鱼王app官网
在接收并解释请求消息后,服务器以 http 响应消息进行响应。接下啦我们详细介绍http 响应消息中使用的每个实体。
消息状态行
状态行由协议版本后跟数字状态代码及其相关的文本组成。元素由空格 sp 字符分隔。
status-line = http-version sp status-code sp reason-phrase crlf
http 版本
支持 http 1.1 版本的服务器将返回以下版本信息:
http-version = http/1.1
状态码
status-code 是一个 3 位整数,其中 status-code 的第一位数字定义响应的类别,最后两位数字没有任何分类作用。第一个数字有 5 个值:
序号 | 代码 | 描述 |
---|---|---|
1 | 1xx:信息 | 这意味着已收到请求并且该过程正在继续。 |
2 | 2xx:成功 | 这意味着动作被成功接收、解析和接受。 |
3 | 3xx:重定向 | 这意味着必须采取进一步行动才能完成请求。 |
4 | 4xx:客户端请求错误 | 这意味着请求包含不正确的语法或无法完成请求。 |
5 | 5xx:服务器错误 | 这意味着服务器未能满足明显有效的请求,可能服务端程序有错误。 |
http 状态代码是可扩展的,并且 http 应用程序不需要了解所有已注册的状态代码的含义。在单独的章节中提供了所有状态代码的列表供您参考。
响应头字段
当我们学习 http 头字段时,我们将在单独的章节中学习 general-header 和 entity-header。现在,让我们看一下 response 标头字段是什么。
响应头字段允许服务器传递关于响应的附加信息,这些信息不能放在状态行中。这些头字段提供了关于服务器的信息以及关于对由 request-uri 标识的资源的进一步访问的信息。
- accept-ranges
- age
- etag
- location
- proxy-authenticate
- retry-after
- server
- vary
- www-authenticate
如果您要编写自己的自定义 web 客户端和服务器,则可以引入自定义字段。
响应消息示例
现在让我们把它们放在一起形成一个 http 响应,用于从在 jiyik.com 上运行的 web 服务器获取hello.html页面的请求
http/1.1 200 ok
date: fri, 23 jul 2018 07:17:06 gmt
server: apache/2.2.14 (win32)
last-modified: tue, 20 jul 2018 01:22:52 gmt
content-length: 88
content-type: text/html
connection: closed
以下示例显示了当 web 服务器找不到请求的页面时显示错误条件的 http 响应消息:
http/1.1 404 not found
date: sun, 18 oct 2018 10:36:20 gmt
server: apache/2.2.14 (win32)
content-length: 230
connection: closed
content-type: text/html; charset=iso-8859-1
404 not found
the requested url /t.html was not found on this server.
以下是当 web 服务器在给定的 http 请求中遇到错误的 http 版本时显示错误情况的 http 响应消息示例:
http/1.1 400 bad request
date: sun, 18 oct 2018 10:36:20 gmt
server: apache/2.2.14 (win32)
content-length: 230
content-type: text/html; charset=iso-8859-1
connection: closed
400 bad request
your browser sent a request that this server could not understand.
the request line contained invalid characters following the protocol string.