http协议之response响应详解

1,http响应

HTTP/1.1 200 OK             --响应行

Server: Apache-Coyote/1.1    --多个响应头

Content-Length: 51

Date: Sun, 28 Dec 2014 01:51:16 GMT

                                --一个空行

this is first servlet!!Sun Dec 28 09:51:16 CST 2014    --实体内容(用户直接看到的内容)


一,响应行

HTTP/1.1 http协议版本信息 

状态码:服务器对于请求处理的结果

其中常用的状态码的含义:

200:  表示请求处理完成。

302:  表示请求需要进一步细化。通常该状态码和location响应头结合使用。

404: 表示客户端错误,找不到资源。

500:  表示服务器错误。

其中不常用的也在此告诉大家:

|"100" ; 10.1.1节: 继续

|"101" ; 10.1.2节: 转换协议

|"200" ; 10.2.1节: OK

|"201" ; 10.2.2节: 已创建

|"202" ; 10.2.3节: 接受

|"203" ; 10.2.4节: 非权威信息

|"204" ; 10.2.5节: 无内容

|"205" ; 10.2.6节: 重置内容

|"206" ; 10.2.7节: 部分内容

|"300" ; 10.3.1节: 多个选择

|"301" ; 10.3.2节: 永久移动

|"302" ; 10.3.3节: 发现

|"303" ; 10.3.4节: 见其它

|"304" ; 10.3.5节: 没有被改变

|"305" ; 10.3.6节: 使用代理

|"307" ; 10.3.8节 临时重发

|"400" ; 10.4.1节: 坏请求

|"401" ; 10.4.2节: 未授权的

|"402" ; 10.4.3节: 必要的支付

|"403" ; 10.4.4节: 禁用

|"404" ; 10.4.5节: 没有找到

|"405" ; 10.4.6节: 方式不被允许

|"406" ; 10.4.7节: 不接受的

|"407" ; 10.4.8节: 需要代理验证

|"408" ; 10.4.9节: 请求超时

|"409" ; 10.4.10节; 冲突

|"410" ; 10.4.11节: 不存在

|"411" ; 10.4.12节: 长度必需

|"412" ; 10.4.13节;先决条件失败

|"413" ; 10.4.14节: 请求实体太大

|"414" ; 10.4.15节; 请求URI太大

|"415" ; 10.4.16节: 不被支持的媒体类型

|"416" ; 10.4.17节: 请求的范围不满足

|"417" ; 10.4.18节: 期望失败

|"500" ; 10.5.1节: 服务器内部错误

|"501" ; 10.5.2节: 不能实现

|"502" ; 10.5.3节: 坏网关

|"503" ; 10.5.4节: 服务不能获得

|"504" ; 10.5.5节: 网关超时

|"505" ; 10.5.6节: HTTP版本不支持

二,响应头:

Location: http://www.it315.org/index.jsp --重定向地址。通常和302状态码配合使用,完成请求重定向效果

Server:apache tomcat    --服务器类型

Content-Encoding: gzip    --服务器发送给浏览器的数据压缩格式

Content-Length: 80        --服务器发送给浏览器数据长度

Content-Language: zh-cn    --服务器发送给浏览器数据语言

Content-Type: text/html; charset=GB2312   --服务器发送给浏览器数据类型

Last-Modified: Tue, 11 Jul 2000 18:23:51GMT  --服务器资源最后修改时间

Refresh: 1;url=http://www.it315.org  --定时刷新或每隔n秒跳转页面

Content-Disposition: attachment; filename=aaa.zip --告诉浏览器以下载方式打开资源

Transfer-Encoding: chunked

Set-Cookie:SS=Q0=5Lb_nQ; path=/search   --服务器发送给浏览器的cookie信息 

Expires:-1                       --建议浏览器不使用缓存

Cache-Control:no-cache

Pragma:no-cache

Connection: close/Keep-Alive     --服务器和浏览器连接状态。close:关闭连接。keep-alive:保持连接。

Date: Tue, 11 Jul 2000 18:23:51 GMT  --响应发送的时间

三,响应实体由后台指定内容发出。

HttpServletResponse对象用于设置响应信息。

常用方法:

                                                        响应行:

                                                                           response.setStatus();  设置状态码

                                                       

                                                        响应头:

                                                                           response.setHeader(name,value);  设置响应头

 

                                                        实体内容

                                                                         response.getWriter().writer()    以字符格式发送实体内容

                                                                           response.getOutputStream().writer()  以字节格式发送实体内容

修改响应数据的方法。

package zdh.cm.response;
/**
 * 修改响应数据
 */
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ResponseDemo1 extends HttpServlet {

	
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doPost(request, response);
	
	}


	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//1)tomcat服务器提供了一个HttpServletResponse对象,用于给开发者修改响应数据
		//2)通过service方法把response对象传入servlet中
		//3)通过response对象修改响应数据
				
			//修改响应数据
				//response.setStatus(404);//设置状态码
				//response.sendError(404);//获取404+404错误页面
			//修改响应头
				response.setHeader("Server", "zdh");
			//修改实体内容
				//response.getWriter().write("this is entry!");//插入字符流
				response.getOutputStream().write("this is byte entry!".getBytes());//插入字节流,
					
	}
		//4)tomcat服务器把response对象转换成响应格式的字符串,发送给浏览器
}


你可能感兴趣的:(http)