HTTP协议概念
- 超文本传输协议
- 基于TCP连接的传输协议
- 默认端口是80
- 基于 请求-响应 模式的协议
HTTP版本
HTTP/1.0 连接后只能获取一个资源
HTTP/1.1 连接后获得多个web资源,连接不会立即断开,直到一段时间没操作,自动断开
通过telnet命令,了解http协议
- 启动tomcat服务器
- cmd --> telnet localhost 80 (win7需要手动打开telnet服务)
- 乱码只需要 “Ctrl + ]” ,然后回车
HTTP请求
一个完整的HTTP请求包括如下内容:
完整的请求请求行
GET /books/java.html HTTP/1.1 分为三个部分:
- 请求方式
- GET POST HEAD OPTIONS DELETE TRACE PUT CONNECT
- 常用的 GET 与 POST
- 资源路径
- 协议版本
GET 与 POST 的区别:
- get把参数显示在地址栏上,安全级别低,不支持大数据
- post把参数放在请求体中,安全级别高,支持大数据
请求头
图片.png重要的头
- if-Modified-Since
- User-Agent
- referer 当前网页的来源,防止盗链
请求体
多个数据之间用&分隔
name=value&name=value&name=value...
HTTP响应
一个HTTP响应代表服务器向客户端回送的数据。
HTTP响应响应行
响应行 状态码响应头
常见的响应头/**
* 和location和302一起完成重定向
* @author limaoquan
*
*/
public class ServletDemo1 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//向页面输出内容
response.setContentType("text/html;charset=UTF-8");
response.getWriter().write("向班长借钱...");
//我没钱
response.setStatus(302);
//告诉我副班长的地址
response.setHeader("location", "/day09/1.html");//客户端的决对路径
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
/**
* 页面定时跳转
* @author limaoquan
*
*/
public class refresh extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//想页面输出内容
response.setContentType("text/html;charset=UTF-8");
response.getWriter().write("向班长借钱...");
//5秒后跳转到/day09/1.html
response.setHeader("refresh", "5;url=/day09/1.html");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
控制缓存
网友评论