概念:Hyper Text Transfer Protocol 超文本传输协议
超文本:超文本是用超链接的方法将各种不同空间的文字信息组织在一起的网状文本
传输协议:定义了客户端和服务器端通信时,发送数据的格式
特点:
1.基于TCP/IP的高级协议
2.默认端口号:80
3.基于请求/响应模型:一次请求对应一次响应
4.无状态:每次请求之间相互独立,不能交互数据
历史版本:
1.0:每一次请求响应都会创建新的连接
1.1:复用连接
请求消息数据格式
1.请求行
请求方式 请求url 请求协议/版本
POST /Demo1 HTTP/1.1
请求方式:
HTTP协议有7中请求方式,常见的有2种
1.GET:
*请求参数在请求行中,在url后
*请求的url长度有限制
2.POST:
*请求参数在请求体中
*请求的url长度没有限制
2.请求头:客户端浏览器告诉服务器一些信息
请求头名称:请求头值
1.Host:告诉本地主机
2.User-Agent:浏览器告诉服务器,我访问你使用的浏览器信息
*可以在服务器端获取该头的信息,解决浏览器的兼容性问题
3.Accept:浏览器告诉服务器,我能接受的资源类型
4.Accept-Language:浏览器告诉服务器,我能接受的语言
5.Accept-Encoding:浏览器告诉服务器,我能接受的压缩形式
6.Connection:浏览器告诉服务器,我此时的连接状态
7.Referer: http://localhost:8080/from.html 告诉浏览器,当前请求从哪里来
作用:1.防盗链 2.便于统计工作
3.请求空行
空行,用来分割POST请求的请求头和请求体
4.请求体(正文)
封装POST请求消息的请求参数
*字符串格式:
POST /Demo1 HTTP/1.1
Host: localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Referer: http://localhost:8080/from.html
Content-Type: application/x-www-form-urlencoded
Content-Length: 17
Origin: http://localhost:8080
Connection: keep-alive
Cookie: Idea-96bdb8de=02aa405a-4822-42d3-87b0-93f298767873; Idea-6c7b642=9d3ee5fa-03d5-4674-b053-74f20a7af24f; JSESSIONID=540FC93769171ECF1116008EE658A91A
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin