-
响应报文
HTTP响应报文主要由状态行、响应头部、空行和响应数据组成。
1、状态行
3部分组成:协议版本、状态码、状态码描述。
协议版本的格式为:HTTP/主版本号.次版本号,常用的有HTTP/1.0和HTTP/1.1
状态码
5种可能取值:
1xx:指示信息--表示请求已接收,继续处理。
2xx:成功--表示请求已被成功接收、理解、接受。
3xx:重定向--要完成请求必须进行更进一步的操作。
4xx:客户端错误--请求有语法错误或请求无法实现。
5xx:服务器错误--服务器未能实现合法的请求。
常见例子如:
200 响应成功
302 跳转,跳转地址通过响应头中的Location属性指定(JSP中Forward和Redirect之间的区别)
400 Bad Request客服端请求有语法错误,不能被服务器识别
401 Unauthorized请求未经授权,这个状态码必须和WWW-Authenticate报头域一起使用
403 Forbidden服务器收到请求,但是拒绝提供服务(认证失败)
404 Not Found请求资源不存在
500 Internal Server Error服务器内部错误
503 Server Unavailable服务器当前不能处理客户端的请求,一段时间后可能恢复正常。
2、响应头部
与请求头部类似,为响应报文添加了一些附加信息。
响应头 | 说明 |
Location | 用于重定向接受者到一个新的位置 |
Server | 服务器应用程序软件的名称和版本 |
Content-Length | 响应正文长度 |
Content-Charset | 响应正文使用的编码 |
Content-Encoding | 响应正文使用的压缩格式 |
Content-Type | 响应正文的类型(是图片还是二进制字符串) |
Content-Language | 响应正文使用的语言 |
Last-Modified | 最后的修改日期及时间 |
Expires | 过期的日期和时间 |
3、响应数据
用于存放需要返回给客户端的数据信息。
例如:
HTTP/1.1 200
Server: nginx
Date: Thu, 22 Nov 2018 05:41:01 GMT
Content-Type: application/json;charset=UTF-8
Connection: keep-alive
Content-Length: 139
{"code":0,"data":{"requestId":"0000400004391542865263601","ts":1542865261748,"groups":[{"impId":0,"ads":[]}],"emptyStatusCode":1501010301}}