HTTP 响应的构成
1、HTTP 响应行:
- 协议、状态、描述
- HTTP 1.1 中定义的状态代码
100-199 是信息性代码,标示客户应该采取的其它动作
200-299 表示请求成功
300-399 表示那些已经移走的文件,常包括Location 报头,指出新的地址
400-499 表示由客户引发的错误
500-599 表示由服务器引发的错误
2、HTTP 响应报头: (头部/首部/响应头)
- 响应头和响应正文之间用空行分隔
- 常用的响应报头
3、HTTP 响应正文:
- 响应正文可以是 HTML 、CSS 、 JavaScript 、TXT ....
response.getWriter();
- 响应正文可以是也可以是 二进制文件,比如 mp4 、mp3 、jpeg 、gif 、doc 、pdf
response.getOutputStream();
HttpServletResponse类型的对象
1、基于HTTP 协议的请求响应机制的信息交换过程
- 建立连接:
客户端与服务器建立TCP 连接
- 发送请求:
建立连接后,客户端把请求消息发送到服务器的相应端口上
- 处理请求
Servlet 容器接受到HTTP 请求
解析HTTP 请求并封装相应的对象
- 发送响应:
服务器在处理完客户端请求之后,要向客户端发送响应消息
- 关闭连接:
客户端和服务器双方都可以通过关闭Socket 来结束TCP/IP 对话
2、与响应报头有关的方法:
- void setHeader( String name , String value ) 设置响应报头的通用方法
- boolean containsHeader( String name ) 判断指定名称的响应报头是否存在,存在即返回true
- void addCookie( Cookie cookie ) 在 响应报头中 添加 一个 Cookie ( 在 set-cookie 报头中追加一个 cookie 值 ,相当于 setHeader( "set-cookie" , value ))
- void setContentType( String mimeType ) 相当于 setHeader( "content-type" , mimeType )
- 常用的 MIME(Multipurpose Internet Mail Extension) 类型:
application/octet-stream 未识别 或 二进制数据 application/pdf PDF 文档
video/mpeg MPEG 视频文件 image/gif 动态图片
image/jpeg 照片图片( .jpeg 、.jpg ) image/png 透明图片text/html HTML文档
text/plain 纯文本文档 text/css CSS样式
text/javascript JavaScript 脚本代码 text/xml XML 文档
text/json JSON 格式的文本 ( JSON : JavaScript Object Notation )
响应报头测试案例一:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Response</title>
<style type="text/css">
a {
display: block ;
width: 400px ;
line-height: 50px ;
border: 1px solid blue ;
margin: 10px auto ;
text-align: center ;
}
</style>
</head>
<body>
<a href="/Servlet/header/first"> First Header Servlet ( content type) </a>
<a href="/Servlet/header/second"> Second Header Servlet ( refresh ) </a>
<a href="/Servlet/image/show"> Show Image Servlet ( content dispositoin ) </a>
<a href="/Servlet/image/down"> Download Image Servlet ( c