概念
:Hyper Text Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则。
原始数据格式
特点
1. 基于TCP协议:面向连接,安全(三次握手)
2. 基于请求-响应模型的:一次请求对应一次响应(无状态)
3.HTTP协议是无状态的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的。
缺点:多次请求间不能共享数据。
优点:速度快
HTTP-请求数据格式
请求行:请求数据第一行(请求方式,资源路径,协议及版本)
请求头:第二行开始,格式key :value
User-Agent:用来解决浏览器的兼容问题
请求体:只有post请求有,存放请求参数
清求方式-GET:请求参数在请求行中,没有请求体,如:/brand/findn11?name=0Pposstatus=1。GET请求大小是有限制的。
请求方式-POST:请求参数在请求体中,POST请求大小是没有限制的。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<form action="" method="get">姓名:<input type="text" name="name"><br>密码:<input type="password" name="password"><br><input type="submit" value="提交"><br>
</form>
<br><br><br>
<form action="" method="post">姓名:<input type="text" name="name"><br>密码:<input type="password" name="password"><br><input type="submit" value="提交"><br>
</form></body>
</html>
HTTP响应格式
响应行:响应数据第一行,(协议,状态码,描述)
响应头:第二行开始,格式key:value
响应体:最后一部分,存放响应数据
Content-Type表示该响应内容的类型,例如text/html,application/json。
Content-Length表示该响应内容的长度(字节数)。
Content-Encoding表示该响应压缩算法,例如gzip。
Cache-Control指示客户端应如何缓存,例如max-age=300表示可以最多缓存300秒。
Set-Cookie告诉浏览器为当前页面所在的域设置cookie。
状态码
1 xx响应中-临时状态码,表示请求已经接收,告诉客户端应该继续请求或者如果它已经完成则忽略它。
2xx成功-表示请求已经被成功接收,处理已完成
3xx重定向-重定向到其他地方;让客户端再发起一次请求以完成整个处理。
4xx责任在客户端。如:请求了不存在的资源、客户端未被授权、禁止访问等,客户端错误-处理发生错误
5xx服务器错误-处理发生错误,责任在服务端。如:程序抛出异常等。
状态码大全:https://cloud.tencent.com/developer/chapter/13553
HTTP-协议解析
解析请求返回响应我们可以用一系列工具