HTTP 协议
超文本传输协议(HTTP,HyperText Transfer Protocol)
是互联网上应用最为广泛的一种网络协议。
所有的 WWW 文件都必须遵守这个标准。
设计 HTTP 最初的目的是为了提供一种发布和接收 HTML 页面的方法。
HTTP 协议的作用
互联网的数据传输
HTTP 协议架构在 TCP 协议之上,它
看 HTTP 协议内容的工具
Chrome(谷歌浏览器)—— 按键 F12
Firefox(火狐浏览器)—— 按键 F12
准备
1. 创建名为 Demo 的 web 项目。
2. 在/web/目录下创建 login.html和 ok.html页面。
login.html
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="http://127.0.0.1:8080/Demo/ok.html" method="get">
姓名:<input type="text" name="username" value="小明"/><br/>
密码:<input type="password" name="password" value="123456"/><br/>
<input type="submit" value="GET 提交"/>
</form>
<hr/>
<form action="http://127.0.0.1:8080/Demo/ok.html" method="post">
姓名:<input type="text" name="username" value="小明"/><br/>
密码:<input type="password" name="password" value="123456"/><br/>
<input type="submit" value="POST 提交"/>
</form>
</body>
</html>
ok.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
成功
</body>
</html>
3. 将 Demo 部署到 Tomcat,并启动 Tomcat。
4. 输入 http://127.0.0.1:8080/Demo/login.html 访问
5. 用 F12 按键观察 HTTP 协议
请求信息的组成部分
HTTP 请求一共分为三个部分:请求行,请求头,请求体。
POST /Demo/ok.html HTTP/1.1 请求行
Host: 127.0.0.1:8080 请求头
Connection: keep-alive
Content-Length: 43
Cache-Control: max-age=0
Origin: http:
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*
请求行
GET /Demo/ok.html?username=xxx&password=123456 HTTP/1.1
Get: 请求方式
访问路径: /Demo/ok.html?username=xxx&password=123456
HTTP 协议和版本: HTTP/1.1
POST /Demo/ok.html HTTP/1.1
POST: 请求方式
访问路径: /Demo/ok.html
HTTP 协议和版本: HTTP/1.1
请求头
Host: 127.0.0.1:8080 (服务器的域名)
Connection: keep‐alive (网络连接是持久的)
Content‐Length: 43 (发送数据的大小,单位字节)
Cache‐Control: max‐age=0 (设置缓存数据的存活时间,单位秒)
Origin: http://localhost:8080 (指示了请求来自于哪个站点——服务器名称)
Upgrade‐Insecure‐Requests: 1 (如果存在更安全的响应,客户端优先选择加密及带有身份验证的响应) Content‐Type: application/x‐www‐form‐urlencoded (发送数据的媒体类型——发挥作用类似后缀名:.mp3 .avi) User‐Agent:Mozilla/5.0 (Windows NT 10.0 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36 (当前系统和浏览器版本) Accept: text/html,application/xhtml+xml,application/xml Referer: http://localhost:8080/Demo/login.html 表示:本次请求,来源于 http://localhost:8080/Demo/login.html 路径。 Accept‐Encoding: gzip, deflate, br Accept‐Language: zh‐CN,zh Cookie: JSESSIONID=98006861B5044ACC8D5C7840C93C17DA
请求体
GET 请求没有请求体,
POST 请求有请求体,POST 请求体的内容就是表单提交的内容.
请求体原始信息
username=xxx&password=123456
Google 包装请求体信息
username: xxx
password: 123456
HTTP 协议 GET 请求方式
GET:有请求行,有请求头,无请求体
HTTP 协议 POST 请求方式
POST:有请求行,有请求头,也有请求体