Http协议-概要
Http协议(超文本传输协议)是位于TCP/IP结构中的应用层的一种传输协议,规定了万维网服务器之间相互通信的规则。比如比较常见的Web浏览器客户端与应用服务器的通信!万维网服务器之间互相通信的时候往往需要其它协议的配合才能完成整个通信的作业,比如应用层的DNS协议,网络层的IP协议等众多协议。然而,为什么网络通信需要规定那么多协议呢?原因终归于网络体系的分层,大家都知道标准的OSI有7层,而当下使用的是TCP/IP结构有4层,那么在各层的通信当中,就需要规定各自的规则,使通信成为可能!Http协议就是应用层其中的一种协议!那么在网络体系中到底什么是Http协议,Http协议规定了什么,怎么通过Http协议来进行网络通信的?下面我将会简要说明,具体详细在后续的文章会一一介绍!
一、什么是Http协议
在解释Http协议之前,大家首先必须了解实体与对等实体。实体指在网络体系中,每一层用于实现该层功能的活动元素称为实体(包括该层的硬软件);对等实体指不同机器上位于同一层次、完成相同功能的两个实体。那么Http协议就是两个对等实体之间在应用层有效地通信所遵守的规则集合。协议由语法、语义和语序三大要素构成。语法包括数据格式,信号电平等;语义指协议语法成分的含义,包括协议用的控制信息和差错管理;语序包括时序控制和速度匹配关系。在后续的介绍中,会不断的介绍这三大要素的内容!
二、Http协议规定了什么
Http协议在Http通信过程中,规定了如何进行网络连接、交换的信息格式、如何传输信息的规则!
三、如何通过Http协议来通信
在回答这个问题之前,大家首先得了解以下几个概念:
- Web客户端和服务器:Web客户端可以发送Http请求,比如浏览器;服务器能够响应Http请求
- Web资源:所有能够提供Web内容的东西都是Web资源
媒体格式:在因特网中有数千种不同的数据类型即MIME,用来描述并标记Web资源。比如text/html 为HTML格式的文本,image/gif为GIF格式的图片
URI(URL,URN):统一资源标识符,URI有URL,URN2种形式,其中URL描述资源的特定位置(已广泛使用),而URN描述资源的唯一名称(处于试验阶段)
- 事务:Http事务由一条请求命令和一个响应结果组成
方法:描述请求的命令,通过这些命令来告诉服务器要执行什么动作,比如GET,PUT,DELETE,POST,HEAD
状态码:描述响应的状态,通过这些状态来告诉客户端请求的状态,比如200,302,404
- 报文:描述传输的数据,包括请求报文和响应报文,报文包括以下格式
起始行:报文的第一行,在请求报文中说明要做些什么,在响应报文中说明请求的状态
首部字段:起始行后面有零个或多个首部字段,首部以一个空格结束。比如Content-Length:300,表示响应主体的长度
主体:请求主体包含要发送给服务器的数据,响应主体包含要返回给客户端的数据,如下图
- 连接:创建客户端与服务器端的一个网络连接,Http协议建立的是TCP连接
通过了解这以上几个概念,相信大家已经大概知道HTTP协议是怎么进行通信的了。Http协议是通过创建TCP连接,通过URI来定位Web资源,Web客户端发起Http请求并携带请求,服务器将响应报文返回给Web客户端的一种请求/响应模式的一种通信。
四、Http的发展历史
HTTP/0.9:1991年的版本,仅支持GET请求方法,不支持多媒体内容的MIME类型,各种HTTP首部,版本号
HTTP/1.0:添加了版本号,各种HTTP首部
HTTP/1.0+:添加了持久的keep-alive连接,虚拟主机支持,以及代理连接
HTTP/1.1::主要引入重要的性能优化措施,这个版本也正是我们现在使用的HTTP版本
HTTP-NG/2.0::将来....
五、Http通信的支撑
Http通信的支撑主要包括代理、缓存、网关、隧道以及Agent代理,有了这些支撑,能使通信更加安全,性能更高,更智能。在后续会不断介绍。
六、总结
通过这篇Http协议概要,我们主要了解了什么是Http协议、Http协议的组成部分比如报文及一些辅助HTTP通信的协议比如DNS,简要的描述了Http协议在应用层是如何通信等内容。