定义:超文本传输协议,是web浏览器和web服务器在交互过程中必须遵循的规则,基于tcp/ip协议的应用层协议
运行方式:
1.建立连接
2.发送请求
3.发送响应内容
4.关闭连接
引入问题:
1.服务器和浏览器是如何通信的?
2.服务器数如何对浏览器发送的请求进行处理的?
3.浏览器是如何对服务器返回的数据进行处理?
OSI七层模型:
1.应用层
2.表示层
3.会话层
4.传输层
5.网络层
6.数据链路层
7.物理层
背景:
TCP/UDP是广泛使用的网络通讯协议,那么为什么又出来一个http呢?
UDP协议具有不可靠性和不安全性,显然这很难满足web应用的需求,而TCP是基于三次握手,虽然具有可靠性,但是具有一定的缺陷,试想,普通的C/S软件,顶多上千个client同时连接,而B/S架构的网站,几万人在线是很常见的,如果几万个用户同时和服务器一直保持连接,那么服务器将如何承载呢?
引出:
所以这就出现了http协议,基于tcp的可靠连接,但是在请求之后,服务器会立即关闭连接,释放资源,这样既确保了资源可用,有吸取了tcp可靠的优点
但是,也是因为这点,http变成了无状态协议,即服务器不知道客户端干了什么,其实这紧紧是基于性能的考虑
http协议分为请求和响应
请求:
1.请求行
描述客户端的请求方式,请求的资源名称,以及使用http协议的版本号
2.请求头
描述客户端请求了哪台主机,以及客户端的一些常用信息
3.请求内容
post提交表单内容
get提交url上问号后的内容
响应:
1.响应行
描述服务器对请求的处理结果
2.响应头
描述服务器的基本信息,以及数据的描述。
3.响应内容
告诉浏览器发送的信息
状态码:
100-199:表示完成接受请求,要求客户端继续提交下一次请求才能完成整个处理过程
200-299:表示完成请求并已完成整个处理过程
300-399:为完成请求,客户端需要进一步细化请求,例如,请求资源已经移动一个新地址
400-499:客户端请求出错
500-599:服务器端出现错误