目录
1. 首行
2. 报头header
3.空行
4. 正文body
1. 首行
响应首行:版本号+状态码+状态码描述;
HTTP状态码描述了这次响应的结果(比如成功、失败,以及失败原因等);
1. HTTP状态码有:
(来源:搜狗百科)
2. 常见HTTP状态码有:
1)200 OK, 表示访问成功:
(2)404 Not Found, 表示访问的资源不存在,在服务器上查询无果:
如访问:
页面显示:
也可在fiddler中查看:
注:404返回的错误页面可以在body中进行设置,很多网站会把这个页面设计得非常丰富多彩;
(3)403 Forbidden:无访问权限,访问被拒绝;
(4)302 Move temporarily:重定向:
重定向类似于呼叫转移,在登录页面302非常常见,用于实现登陆成功后自动跳转到主页;
302这样的响应报文中会在header中带有一个Location属性,通过这个属性来描述要跳转到哪个新的地址;
注:注意区别重定向与请求转发:
① 请求转发是servlet/spring里提供的机制;重定向是HTTP里提供的机制;
② 请求转发只能在该服务器内部的资源之间转发,重定向可以重定向到外部资源,即可跳转到别的网站;
③ 请求转发只有一次交互,更高效;重定向需要进行两次交互;
(5)500系列:服务器内部错误,
如:504 gateway timeout:请求超时等等;
注:gateway即网关,是一个网络的出入口,通常也用来指代一个机房的入口服务器,192.168.1.1这种ip一般是网关ip;
可总结如下:
类别 | 原因短语 | |
1XX | Informational(信息性状态码) | 接受的请求正常处理 |
2XX | Success(成功状态码) | 请求正常处理完毕 |
3XX | Redirection(重定向状态码) | 需要进行附加操作以完成请求 |
4XX | Client Error(客户端错误状态码) | 服务器无法处理请求 |
5XX | Server Error(服务器错误状态码) | 服务器处理请求出错 |
注:HTTP状态码是RFC标准明确规定的,不允许自定义;
2. 报头header
与HTTP请求相同,HTTP响应的报头也是键值对格式;
关于HTTP请求的详细内容,请查看HTTP请求报头部分文章,链接如下:
【JavaEE】_HTTP请求报头header-CSDN博客
3.空行
与HTTP请求相同,空行是header的结束标记;
4. 正文body
根据不同的Content-Type,设置具体的响应数据格式与内容;