美文网首页
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