这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天
一、HTTP概述
HTTP是可靠数据传输协议,其传输过程确保数据的完整正确,无需进一步关注传输过程的控制。
二、C/S
客户端与服务器架构,服务器存储相应的web内容数据,客户端提出请求,服务器响应,通过报文对应完成资源请求的通信。其中资源内容寄存于服务器中,其形式多样,可以是静态的文件,也可以是动态的程序服务。
三、媒体类型
MINE原先是用于邮件协议的,在HTTP的得以沿用,对应产生一个MINE类型来标注具体数据的内容。相应的形式在报文中以Content-type进行标注,其内容以 / 分割比如html格式为text/html,因为html在具体传输的时候还是以文本的形式,但是其具体的类型是html文件,所以标注为text/html,前者标注一个大范围的对象类型,后者具体标注子类型。
URI
URI(Uniform Resourse Identifier)统一资源标识符,其为每一个数据资源都进行一个标注,便于在访问的时候进行区分。其对应的形式有两种一个为URL(统一资源定位符),一个是URN(统一资源名)。
URL
对应的形式为: (scheme)+(host)+(path)
- scheme: 标识了对应使用的协议类型,如http://或者https://等。
- host: 对应为服务器的地址,可以是对应的IP或者是域名,标注主机在网络中的位置。
- path: 找到对应主机后,通过path就可以找到相应资源的位置。 如今,URL几乎就是URI的形式。
URN
URN作为特定内容的唯一名称使用,不关注资源所在的位置,同一个名称可以通过多种协议来访问资源。URN并未广泛使用。
事务
对于相应的资源请求,使用事务的形式对其进行处理,一个事务包括一个请求命令(客户端到服务器)与一个相应结果组成(服务器到客户端),而具体的过程是通过HTTP报文(一种格式化数据块)完成的。一个web界面的资源请求往往是由多个事务组成。
方法
状态码
报文
连接
版本历程
- HTTP/0.9: 1991年的原型版本,仅支持GET方法,不支持MINE类型与各种HTTP首部,其目的仅为了获取HTML对象。
- HTTP/1.0: 添加了各种首部与额外的相关方法,满足了对于多媒体数据对象的处理。
- HTTP/1.0+: 非官方的标准统称为1.0+,添加了包括持久连接,虚拟主机支持,代理连接支持等。
- HTTP/1.1: 完善HTTP的结构,明确语义,删除了许多的不必要特性,引入了性能优化,是当前的主流版本。
- HTTP/2.0: 是HTTP后续的原型建议,侧重于性能优化和更强的服务器逻辑远程执行框架。
Web的结构组件
- 代理
- 缓存
- 网关
- 隧道
- 用户代理
。。。。。