美文网首页
HTTP协议

HTTP协议

作者: 老茂在北京 | 来源:发表于2017-04-06 14:50 被阅读21次

    HTTP协议概念

    • 超文本传输协议
    • 基于TCP连接的传输协议
    • 默认端口是80
    • 基于 请求-响应 模式的协议
    HTTP版本

    HTTP/1.0 连接后只能获取一个资源
    HTTP/1.1 连接后获得多个web资源,连接不会立即断开,直到一段时间没操作,自动断开

    通过telnet命令,了解http协议
    1. 启动tomcat服务器
    2. cmd --> telnet localhost 80 (win7需要手动打开telnet服务)
    打开telnet服务 telnet 命令
    1. 乱码只需要 “Ctrl + ]” ,然后回车
    乱码改正后这样,此时还没回车 输入请求,此处输入无法删除,两次回车后才能响应 响应

    HTTP请求

    一个完整的HTTP请求包括如下内容:

    完整的请求

    请求行

    GET /books/java.html HTTP/1.1 分为三个部分:

    • 请求方式
      • GET POST HEAD OPTIONS DELETE TRACE PUT CONNECT
      • 常用的 GET 与 POST
    • 资源路径
    • 协议版本

    GET 与 POST 的区别:

    • get把参数显示在地址栏上,安全级别低,不支持大数据
    • post把参数放在请求体中,安全级别高,支持大数据
    HTTP协议之请求

    请求头

    图片.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);
        }
    }
    
    控制缓存

    相关文章

      网友评论

          本文标题:HTTP协议

          本文链接:https://www.haomeiwen.com/subject/fdfqattx.html