HTTP是什么
HTTP是什么
- 全称HyperText Transfer Protocol,称为超文本传输协议,最为广泛的一种网络协议
- 是Web进行数据交换的基础,是一种“客户端-服务器端”协议
- 最初的目的是提供一种发布和接收HTML页面的方法
HTTP协议历史与标准
- 0.9版本:1991,严重设计缺陷,只支持GET方法,不支持MIME类型
- 1.0:1996,支持多种方法
- 1.0+:支持持久连接、虚拟主机、代理连接等新特性
- 1.1:1999,校正HTTP设计缺陷,性能优化,删除一些不好的特性
- 2.0:HTTP协议的性能优化以及更加强大的服务逻辑远程执行框架
HTTP请求与响应信息
客户端和服务端通过交换各自的消息(与数据流正好相反)进行交互
- 由像浏览器这样的客户端发出的消息叫做请求
- 被服务端回应的消息叫做响应
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PbTdsdjn-1597663291247)(https://s1.ax1x.com/2020/08/17/dmUk26.png)]
HTTP的基本原理
- 应用层协议
- 通过TCP,或者TLS-加密的TCP连接来发送
- 良好的扩展性
HTTP的概述
- 请求通过一个实体被发出,实体也就是用户代理,这个用户代理是指浏览器
- 每一个发送到服务器的请求,都会被服务器处理并返回一个消息(响应)
- 这个请求与回应之间,还有许多被称为Proxies的实体
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JQifB0pp-1597663291252)(https://s1.ax1x.com/2020/08/17/dmdyE4.png)]
客户端
- 任何能够为用户发起行为的工具
- 浏览器来扮演
- 浏览器总是作为发起一个请求的实体
- 浏览器首先发送一个请求来获取页面的HTML文档,再解析文档中的资源信息发送其他要求,获取执行脚本或CSS样式来进行页面布局的渲染,以及一些其它页面资源,然后,浏览器将这些资源整合到一起,展现出一个完整的文档,也就是网页
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZT4br6l1-1597663291255)(https://s1.ax1x.com/2020/08/17/dms8bV.png)]
Web服务器
HTTP协议通信过程的另一端,由Web服务器来服务并提供客户端所请求的文档
Web服务不一定是一台机器,但一个机器上可以装载众多Web服务
代理(Proxies)
既可以表现得透明,又可以不透明(“改变请求”会通过它们)
- 缓存
- 过滤
- 负载均衡
- 认证
- 日志记录
HTTP的基本特性
- 简单的
- 可扩展性
- 无状态,有会话的
- 会话:在连接中,两个执行成功的请求之间是没有关系的
- 无状态:同一个网站中进行连续的交互
- 连接
HTTP能控制什么
- 缓存
- 开放同源限制
- 认证:用HTTP Cookies来设置指定的会话
- 代理和隧道
- 会话
HTTP流
-
打开一个TCP连接:发送一条或多条请求,以及接受回应消息
-
发送一个HTTP报文:语义可读的
-
读取服务端返回的报文信息
-
关闭连接或者为后续请求重用连接
-
打开一个TCP连接:发送一条或多条请求,以及接受回应消息
-
发送一个HTTP报文:语义可读的
-
读取服务端返回的报文信息
-
关闭连接或者为后续请求重用连接