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对象转换成响应格式的字符串,发送给浏览器
}


  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
超 文本传输协议(HTTP)是一种为分布式,合作式,超媒体信息系统。它是一种通用的,无状态(stateless)的协议,除了应用于超文本传输外,它也 可以应用于诸如名称服务器和分布对象管理系统之类的系统,这可以通过扩展它的请求方法,错误代码和报头[47]来实现。HTTP的一个特点是数据表现形式 是可输入的和可协商性的,这就允许系统能被建立而独立于数据传输。 目录 1 引论 1.1 目的 1.2 要求 1.3 术语 1.4 总体操作 2 符号习惯和一般语法 2.1 扩充的BNF(扩充的 巴科斯-诺尔范式) 2.2基本规则 (basic rule) 3 协议参数 3.1 HTTP版本 3.2 统一资源标识符(URI) 3.2.1一般语法 3.2.2 http URL 3.2.3 URI 比较 3.3 日期/时间格式(Date/Time Formats) 3.3.1完整日期 (Full Date) 3.3.2 Delta Seconds 3.4 字符集 3.4.1丢失的字符集(Missing Charset) 3.5 内容编码(Content Codings) 3.6 传输编码 (Transfer Codings) 3.6.1块传输编码(Chunked Transfer Coding) 3.7 媒体类型(Media Type) 3.7.1规范化和文本缺省 (Canonicalization and Text Defaults) 3.7.2多部分类型(Multipart type) 3.8 产品标记 (product Tokens) 3.9 质量值(Quality Values) 3.10 语言标签 (Language Tags) 3.11 实体标签 (Entity Tags) 3.12 范围单位(Range Units) 4 HTTP消息 4.1 消息类型(Message Types) 4.2 消息头 (Message Headers) 4.3 消息主体 (Message Body) 4.4 消息的长度(Message Length) 4.5 常用头域(General Header Fields) 5 请求(Request) 5.1 请求行 (Request-Line) 5.1.1方法 (Method) 5.1.2请求URL(Request-URI) 5.2请求资源 (The Resource Identified by a Request) 5.3请求报头域 (Request Header Fields) 6 响应Response) 6.1 状态行 (Status-Line) 6.1.1状态码与原因短语 (Status Code and Reason Phrase) 7 实体(Entity) 7.1 实体报文域(Entity Header Fields) 7.2 实体主体(Entity Body) 7.2.1类型(Type) 7.2.2实体主体长度(Entity Length) 8 连接 8.1 持续连接(Persistent Connection)。 8.1.1目的 8.1.2总体操作 8.1.2.1 协商(Negotiation) 8.1.2.2 流水线(pilelining) 8.1.3代理服务器 (Proxy Servers) 8.1.4实际的考虑 (Practical Considerations) 8.2 消息传送要求(Message Transmission Requirements) 8.2.1持续连接与流量控制 (Persistent Connections and Flow Control) 8.2.2监视连接中出错状态的消息 8.2.3 100状态码的用途 8.2.4服务器过早关闭连接时客户端的行为 9 方法定义(Method Definitions) 9.1 安全和等幂(Idempotent)方法 9.1.1安全方法(Safe Methods) 9.1.2等幂方法(Idempotent Mehtods) 9.2 OPTIONS(选项) 9.3 GET 9.4 HEAD 9.5 POST 9.6 PUT 9.7 DELETE(删除) 9.8 TRACE 9.9 CONNECT(连接) 10.状态码定义 10.1 通知的 1xx 10.1.1 100 继续 (Continue) 10.1.2 101切换协议 (Switching Protocols) 10.2 成功 2xx 10.2.1 200 OK 10.2.2 201 已创建(Created) 10.2.3 202 接受(Accepted) 10.2.4 203 非权威信息(Non-Authoritative informatio

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值