HTTP响应报文由四部分组成:
- 状态行
- 响应头部
- 空行
- 响应正文
1、状态行
由3部分组成:协议版本,状态码,状态码描述。之间由空格分隔。
- 1xx:指示信息--表示请求已接收,继续处理。
- 2xx:成功--表示请求已被成功接收、理解、接受。
- 3xx:重定向--要完成请求必须进行更进一步的操作。
- 4xx:客户端错误--请求有语法错误或请求无法实现。
- 5xx:服务器端错误--服务器未能实现合法的请求。
这里列举几个常见的:
- 200 OK:客户端请求成功。
- 400 Bad Request:客户端请求有语法错误,不能被服务器所理解。
- 401 Unauthorized:请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用。
- 403 Forbidden:服务器收到请求,但是拒绝提供服务。
- 404 Not Found:请求资源不存在,举个例子:输入了错误的URL。
- 500 Internal Server Error:服务器发生不可预期的错误。
- 503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常,举个例子:HTTP/1.1 200 OK(CRLF)。
2、响应头部
与请求头部类似,为响应报文添加了一些附加信息。
常见响应头部如下:
- Server 服务器应用程序软件的名称和版本
- Content-Type 响应正文的类型(是图片还是二进制字符串)
- Content-Length 响应正文长度
- Content-Charset 响应正文使用的编码
- Content-Encoding 响应正文使用的数据压缩格式
- Content-Language 响应正文使用的语言
3、空行
最后一个响应头之后是一个空行,发送回车符和换行符,通知客户端以下不再有响应头。
4、响应正文
服务器发送给客户端的内容,也是客户端所请求的内容。