http协议之response响应详解
2017-01-01 17:42
399 查看
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 Response Status Code -- HTTP响应代码中文详解
- http协议请求响应详解
- 理解HTTP协议的Request/Response(请求响应)模型
- http协议学习-响应头Response Headers
- HTTP响应代码(Response Status Code)中文详解
- http协议请求响应详解
- HTTP协议的响应头,请求头详解
- HTTP协议里面request请求和response响应重要的头
- Http协议中关于请求与响应中文参数乱码问题详解
- 理解HTTP协议的Request/Response(请求响应)模型
- HTTP协议响应头之Transfer-Encoding:分块传输详解
- HTTP响应代码中文详解(HTTP Response Status Code)[转]
- HTTP协议响应(详解)
- HTTP Response Status Code -- HTTP响应代码中文详解
- 【转】:理解HTTP协议的Request/Response(请求响应)模型
- 理解HTTP协议的Request/Response(请求响应)模型
- HTTP Response Status Code -- HTTP响应代码中文详解
- HTTP协议之响应部分 响应部分详解 响应部分分成三块内容
- Servlet(10)Http协议、HTTP请求和响应头及其详解(文件下载)
- http协议详解之响应篇