07 September 2013

上一节简单介绍了Http请求,并展示了一个打印请求信息的servlet。本节描述的是Http响应,对应的是HttpServletResponse。这个类型的对象会作为参数传递给doGet方法。
从上一节我们可以看到通过HttpServletRespnonse,我们可以输出自己定义格式的html到ServletOutputStream中,并最终传送给浏览器显示。 与Http请求的结构类似,Http响应包含status line, headers, blank line和可选的response body这几部分。 ### Http响应格式

<status-line>	
<headers>
<blank line>
[<response-body>]

status line 包含HTTP协议版本、状态码和状态描述三部分。HTTP协议版本目前为HTTP/1.1。状态码分为五种: + 1xx:指示信息–表示请求已接收,继续处理。 + 2xx:成功–表示请求已被成功接收、理解、接受。 + 3xx:重定向–要完成请求必须进行更进一步的操作。 + 4xx:客户端错误–请求有语法错误或请求无法实现。 + 5xx:服务器端错误–服务器未能实现合法的请求。 最常见的包括200、404、500等。
headers则描述了响应的一些字段和值,同样是多行按冒号分隔字段名和字段值的格式。常见的包括Content-Type、Content-Length、Character-Encoding等等。
Response body则是具体的响应内容,例如响应的Html格式内容。这部分通过getWriter和getOutputStream获取输出流来填充。而headers和status line可以使用HttpServletResponse的对应方法设定。



blog comments powered by Disqus