# 3.2 状态代码
## 3.2 状态代码
在前面HTTP一节的例子中,服务器对请求
```
GET /index.html
```
回复了一个状态代码200,表示“没问题”。除了200,HTTP还定义了一系列的状态代码,各有不同含义,如404表示“请求的资源不存在”,500表示一个服务器错误等。这些代码分为以下几类:
- 1XX系列代码表示一个中间状态(provisional response),不常见。
- 2XX系列代码表示成功,如200。另外还有一些2XX代码对“成功”有更具体的定义和行为,比如:201表示成功创建了一个资源;204表示请求被成功处理但是应答不带有任何消息正文。
- 3XX系列表示重定向(redirection),客户端在收到这个代码后应该根据服务器的指示(通过一个Location应答头)向一个新的URL发起GET请求。
- 4XX系列表示客户端错误,比如404表示所请求的资源不存在,403表示客户端没有权限访问所请求的资源。
- 5XX系列表示服务器端错误,如500(服务器不必详细给出错误的原因)。
这篇Wiki文档对HTTP状态代码做了更多说明:[https://en.wikipedia.org/wiki/List\_of\_HTTP\_status\_codes](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes)
需要注意的是:服务器回复的状态代码(status code)跟请求的方法(method)有紧密的关联——方法决定了哪些代码是合理的,哪些不合理。比如对一个GET或DELETE请求,返回201是不合理的。这在设计RESTful Web API时尤为重要。
- 前言
- 1 Web概述
- 1.1 什么是Web
- 1.2 超文本和超链接
- 1.3 URL
- 1.4 DNS
- 1.5 HTTP
- 1.5.1 客户端请求
- 1.5.2 服务器应答
- 1.5.3 进一步了解HTTP
- 1.6 HTTPS
- 2 Web浏览器
- 2.1 HTML
- 2.1.1 文档类型声明
- 2.1.2 标签和属性
- 2.1.3 文档结构
- 2.1.4 DOM
- 2.1.5 进一步了解HTML
- 2.2 CSS
- 2.2.1 样式与样式表
- 2.2.2 样式表语法
- 2.2.3 级联样式表
- 2.2.4 进一步了解CSS
- 2.3 JavaScript
- 2.3.1 script标签
- 2.3.2 操纵DOM
- 2.3.3 jQuery
- 2.3.4 进一步了解JavaScript
- 2.4 Ajax
- 2.5 移动设备与响应式Web设计
- 3 Web服务器
- 3.1 方法与资源
- 3.2 状态代码
- 3.3 静态内容与动态内容
- 3.4 编程语言与技术
- 3.4.1 CGI
- 3.4.2 PHP
- 3.4.3 Java
- 3.4.4 Python
- 3.4.5 Ruby
- 3.4.6 Node.js
- 3.5 RESTful Web API
- 3.6 服务器架构
- 3.7 Web缓存
- 3.8 服务器推送
- 4 数据库
- 4.1 关系型数据库
- 4.2 NoSQL数据库
- 5 Web服务器的其他组件
- 5.1 Cron
- 5.2 消息队列
- 5.3 邮件服务器
- 6 开发工具与技术
- 6.1 Git
- 6.1.1 Git基础操作
- 6.1.2 Git基本原理
- 6.1.3 进一步了解Git
- 6.2 敏捷开发