HTTP状态码:
100-199:表示信息性代码,标志客户端应采取其他动作,请求正在进行;
200-299:表示客户请求成功;
300-399:表示用于已经移走的资源文件,指示新的地址;
400-499:表示由客户端引发的错误;
500-599:表示由服务器端引发的错误
设置状态码:
HttpServletResponse中的sendError(int 状态码,”状态描述”)
在消息体发送之前(即使用PrintWriter向客户端放送消息之前)设置状态码
设置响应头:
HttpServletResponse(接口)中的setHeader(“键”,”值”),键值对要遵循HTTP协议才有效
SetHeader()只针对HTTP协议,因为只有HTTP协议才会有响应头,所以是HttpServletResponse独有的方法
设置消息体:HttpServletResponse有两种方式
---传输普通文本 getWriter()打印字符流
---传输二进制内容 getOutputStream()打印字节流
重定向的工作流程:
客户端请求服务器,服务器调用response.sendRedirect()方法,重定向到新的资源。产生响应时,会发送响应码302,同时产生location响应头。客户端浏览器在接收到响应信息后,发现是302状态码,会读取location响应头的信息,然后根据location响应头的内容,再向服务器发出第二次请求
GET/POST对比
1,流格式的区别:
Get方式只有请求行,请求头,空行。在URL后面附加表单数据。
POST方式有请求行,请求头,空行,消息体。在消息体中描述表单数据
2.用途的区别:
GET方式主要用于资源的查找
POST方式主要用于数据传输
3.传输性能的区别:
Get方式不能传输大数据,只能传输文本数据,表单数据会显示在地址栏,不安全。
POST方式可以传输文本数据和二进制数据,并可以传输大数据,表单数据在消息体中,地址栏不会显示,相对安全
特征 | GET方法 | POST方法 |
提交数据类型 | 文本 | 文本,二进制 |
提交数据长度 | 不超过255个字符 | 没有限制 |
提交数据可见性 | 作为URL地址的一部分显示在浏览器上 | 作为请求的消息体,不可见 |
提交数据缓存 | 缓存在浏览器URL历史状态中 | 不会被浏览器缓存 |
使用GET的情况:
用户在网页上点击一个超链接;
用户提交在网页上填写好的表单;
用户在浏览器地址栏中输入URL地址并回车
---默认情况下都是使用HTTP协议的GET方法提交请求