美文网首页
2. Java Web HTTP协议

2. Java Web HTTP协议

作者: 飞扬code | 来源:发表于2019-07-07 10:58 被阅读0次

    1、HTTP协议

    HTTP,超文本传输协议(HyperText Transfer Protocol),是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为 了提供一种发布和接收HTML页面的方法。

    Http协议的组成:Http协议由Http请求和Http响应组成,当在浏览器中输入网址访问某个网站时,你的浏览器会将你的请求封装成一个Http请求发送给服务器站点,服务器接收到请求后会组织响应数据封装成一个Http响应返回给浏览器。即没有请求就没有响应。

    <!DOCTYPE html><html lang="en"><head>
    <meta charset="UTF-8">
    <title>Title</title></head><body>
    <form action="#" method="post">
    <input type="text" name="UserName" value="yyb">
    <input type="password" name="Password" value="123456">
    <input type="submit" value="测试">
    </form></body></html>
    

    2、HTTP请求

    image.png
    1)请求行

    请求方式:POST、GET

    请求的资源:http://localhost:63342/JavaWebDemo/form.html?UserName=yyb&Password=123456

    协议版本:HTTP/1.1

    HTTP/1.0,发送请求,创建一次连接,获得一个web资源,连接断开。
    HTTP/1.1,发送请求,创建一次连接,获得多个web资源,保持连接。

    2)请求头

    请求头是客户端发送给服务器端的一些信息,使用键值对表示key:value


    image.png
    3)请求体

    当请求方式是post的时候,请求体会有请求的参数,比如:username=zhangsan&password=123

    如果请求方式为get,那么请求参数不会出现在请求体中,会拼接在url地址后面,比如:http://localhost:8080...?username=zhangsan&password=123

    String getHeader(String name) 获取请求中的报头信息
    
    请求头
    String value = request.getHeader("host");// 根据头名称获取头值
    System.out.println("host:"+value);
    
    Enumeration getHeaderNames() 获取请求中所有报头的集合
    
    //遍历所有头
    Enumeration<String> enums = request.getHeaderNames();// 获取所有头名称
        while(enums.hasMoreElements()){
            String headerName = enums.nextElement();
            String headerValue = request.getHeader(headerName);
            System.out.println(headerName+":"+headerValue);
        }
    }
    
    String getContextPath() 获取请求上下文路径
    
    
    String getRequestURI() 获取请求中的URI
    // 请求资源
    System.out.println("URI:"+request.getRequestURI());
    System.out.println("URL:"+request.getRequestURL());
    
    
    String getMethod() 获取HTTP请求方法
    // 请求方式
    System.out.println("请求方式:"+request.getMethod());
    
    // http协议版本
    System.out.println("Http协议:"+request.getProtocol());
    
    String getRemoteAddr() 获取客户端IP
    

    3、HTTP响应

    image.png
    1)响应行

    Http协议状态码:

    常用的状态码如下:
    200 :请求成功。
    302 :请求重定向。
    304 :请求资源没有改变,访问本地缓存。
    404 :请求资源不存在。通常是用户路径编写错误,也可能是服务器资源已删除。
    500 :服务器内部错误。通常程序抛异常。

    状态信息:状态信息是根据状态码变化而变化的

    2)响应头

    响应也都是键值对形式,服务器端将信息以键值对的形式返回给客户端


    image.png
    3)响应体

    响应体是服务器回写给客户端的页面正文,浏览器将正文加载到内存,然后解析渲染 显示页面内容

    相关文章

      网友评论

          本文标题:2. Java Web HTTP协议

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