HTTP
HTTP是超文本传输协议 HyperText Transfer Protocol 是互联网用的最广泛的网络协议
HTTP协议是在Web上进行数据交换的基础,是一种 客户端到服务器端之间的协议
用于让它们之间的数据的传输的协议 比如 文本 图片 视频等
设计之初是为了提供发送和接收HTML页面的方法
HTTP协议的历史与标准
HTTP/0.9 很快被HTTP/1.0取代 因为只支持GET 1991
HTTP/1.0 支持多种请求方法 支持多媒体对象 广泛应用 1996
HTTP/1.0+ 支持持久连接 虚拟主机 代理连接等新特征 非官方的事实标准
HTTP/1.1 校正了1.0的缺陷 性能优化 删除了不好的特征 1999
HTTP-NG(或者说是HTTP/2.0) HTTP协议的性能优化以及更强大的服务逻辑远程执行框架,研究工作进行中
HTTP请求与响应消息
像浏览器这样的 是客户端 发出的消息是请求(requests)
像服务器端回复的叫做响应(responses)
请求的数据和响应的数据叫做消息
HTTP的基本原理
HTTP是应用层的协议 是通过TCP或者TLS-加密的TCP连接来发送,理论上任何可靠传输协议都可以使用。
基于HTTP的组件系统
概述:请求通过一个实体被发出,实体也就是用户代理(比如浏览器)
请求与响应之间会有Proxies
客户端
user-agent就是任何能够为用户发起行为的工具 一般 是浏览器
浏览器发送请求的实体 服务器接收请求 返回响应请求的内容 通过请求回来的数据 浏览器解析内容 如果解析的内容还需要其他的内容 就会自动再次发送请求 服务器同上 来渲染html页面
Web服务器
Web服务器来服务并提供客户端所请求的文档。
Web服务不一定是一台机器 但一个机器上可以装多个Web服务
代理(Proxies)
大多出现在传输层 网络层 物理层 对于客户端来说 代理就是浏览器
HTTP的基本特性
HTTP是简单的
HTTP报文能被人读懂 允许简单测速 降低门槛
HTTP是可扩展的
HTTP/1.0出现HTTPheaders让协议变得非常容易
HTTP是无状态,有会话
会话就是双方建立连接通信
无状态就是上一次请求和响应 下一次不知道 就相当于没有储存手机号
HTTP和连接
连接是由传输层来控制的,这从根本上不属于HTTP的范围
HTTP能控制什么
被HTTP控制的常见特性:
缓存 服务器向客户端存一些东西
开发同源限制
认证 比如Cookies
代理和隧道 服务器或客户端是处于内网的,对外网隐蔽真实ip地址。因此HTTP请求就要通过代理越过这个网络屏障
会话
HTTP流
打开一个TCP连接:TCP连接发送一条或多条请求,以及接受回应消息
发送一个HTTP报文:HTTP报文是语义可读的
读取服务器返回的报文消息
关闭链接或者为后续请求重新连接