-
Http协议
1.协议作用
定义浏览器与服务器交互的格式,浏览器(tomcat)默认支持http协议。
访问的过程:
(1)发送一个Http请求。
(2)一个http响应, 响应浏览器。
协议查看
谷歌浏览器查看
-
Http请求
一个完整的Http请求包括:一个请求行、多个请求头、请求体【一个请求行】
例如:GET /day08/servlet/MyServlet HTTP/1.1
a
提交方式: a
GET:
直接访问,都是get提交
其他,如: location.href=’’;数据存放位置: 提交数据,追加到地址栏之后,即追加到请求行之后 提交大小有限制: 1kb POST: 只有一种方式: <form method="post"> 数据存放位置: 数据保存到请求体中 提交数据:没有大小限制 提交路径 例如:/day08/servlet/MyServlet 包括项目名称、资源名称 协议 例如:HTTP/1.1 协议版本: HTTP/1.0 一次请求,请求完后,立刻断掉连接 HTTP/1.1 一次请求,保持连接,时间很短,然后就断开请求连接
3.HttpServletRequest 对象
request.setCharacterEncoding("UTF-8"); 设置请求数据中文编码(对post有效)
request.getParameter("");
request.getMethod();
request.getRequestURI();
request.getHeader("");
4.Http响应(response)
一个http响应: 响应状态行、响应头、响应体
【响应状态行】
例如: HTTP/1.1 200 OK
格式: 协议、状态码、状态码的描述
响应状态码:
1XX 请求正在处理
2XX 请求处理成功。
3XX 重发。 请求还需要进一步细化才能完成处理。
(重定向)
4XX 客户端请求错误(请求路径错误)
5XX 服务器内部错误(代码写错了)
常用的状态码:
200 响应正常完成。
302 还需要进一步处理请求(会从响应头中找location头对应的地址进行再次请求服务器, "重定向")
304 服务器发送304状态吗,浏览器收到后从缓冲中获取数据
404 路径错误
405 提交方式错误
500 服务器内部错误
响应头:
content-type: 通过这个响应头,设置相应数据编码
1. response.setHeader("Content-Type", "text/html;charset=UTF-8");
2. response.setContentType("text/html;charset=UTF-8");
3. response.setCharacterEncoding("UTF-8"); // 只是设置相应数据的编码
通过response方法操作,达到与上面一样的效果
response.setContentType("text/html;charset=UTF-8");
location: 设置跳转方向 (重定向)
跳转
方式1:
response.setStatus(302);
response.setHeader("location", "/day08/e/success.jsp");
方式2:重定向方法
response.sendRedirect("/day08/e/success.jsp");
refresh: 设置定时刷新或在指定的时间后跳转。
response.setIntHeader("refresh", 1); 定时刷新
response.setHeader("refresh", "5;url='/day08/e/success.jsp'"); 5秒后跳转
Content-Disposition 下载的响应头
response.setHeader("content-disposition", "attachment;fileName=" + URLEncoder.encode(file, "UTF-8"));
Content-Encoding 数据压缩
- HttpServletResponse 对象
任务:
1. 请求数据,获取
4种, 请求中文数据(get/post)
2. 请求头: referer头案例
3. 响应头
编码、重定向、刷新、下载、压缩
响应:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Length: 0
Date: Mon, 03 Aug 2015 07:11:34 GMT
请求协议:
GET /day08/servlet/MyServlet HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36
Accept-Encoding: gzip, deflate, sdch
Accept-Language: zh-CN,zh;q=0.8,en;q=0.6
请求体数据