HTTP概述
HTTP(Hypertext Transferr Protocal)中文译名为超文本协议,它是互联网中最广泛使用的数据资源传输协议。从1989年诞生至今有四个版本:
- HTTP/0.9:这个名字是后来取的,人们把HTTP/1.0之前的版本统称为HTTP/0.9,HTTP/0.9时代并没有作为正式标准被建立。
- HTTP/1.0:该版本作为标准正式公布于1996年5月,至今仍广泛用于服务器端。
- HTTP/1.1:1997年1月公布,是至今为止最主流的HTTP协议版本。
- HTTP/2.0:新世纪长达十多年HTTP一直驻足发展,终于于2013年迎来了HTTP/2.0的问世,其主要是为了解决通信安全性问题而进行的版本迭代,目前多用于https:// 中,要达到广泛的覆盖率,还需假以时日。
OSI七层协议模型
OSI七层协议模型是网络协议的理论模型,是ISO制定的一个用于计算机或通信系统间互联的标准体系。显然,用一个统一的协议来统筹庞大的互联网通信是不现实的,如果仅仅只想改变某一部分功能,整个协议都需要发生改变,这样的代价似乎有点大。所以人们通过分层的思想来规定网络通信协议,OSI协议共分为7层:
1.物理层:包含了多种与物理介质相关的协议,这些物理介质用以支撑TCP/IP通信。其主要功能为:利用传输介质为数据链路层提供物理连接,实现比特流的透明传输,其传输单位为bit。规定了集线器、中继器、调制解调器、网线、双绞线、同轴电缆等物理设备。同时还有制定了如下协议:
- 电子/光学协议:描述了信号的各种特性。例如:电压、光强度、位定时、编码、信号波形等;
- 机械协议:指定了连接器的尺寸或者导线的金属成分;
- 功能性协议:描述了做什么。例如:在EIA-232-D连接器第4管脚上的功能描述是“信号发送”;
- 程序性协议:描述了如何做。例如:在EIA-232-D导线上,二进制1表示电压小于-3V;
2.链路层:通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。它主要解决两个相邻节点之间的通信问题,其传输单位为数据帧。
3.网络层:其主要任务是:通过路由选择算法,为报文或分组通过通信子网选择最适当的路径。该层控制数据链路层与传输层之间的信息转发,建立、维持和终止网络的连接。具体地说,数据链路层的数据在这一层被转换为数据包,然后通过路径选择、分段组合、顺序、进/出路由等控制,将信息从一个网络设备传送到另一个网络设备。
4.传输层:OSI协议上三层用于数据处理,下三层用于数据交换,所以传输层在其中起到承上启下的作用。该层的主要任务是:向用户提供可靠的端到端的差错和流量控制,保证报文的正确传输,著名的TCP协议就在此层。
5.会话层:会话层是用户应用程序和网络之间的接口,主要任务是:向两个实体的表示层提供建立和使用连接的方法。将不同实体之间的表示层的连接称为会话。因此会话层的任务就是组织和协调两个会话进程之间的通信,并对数据交换进行管理。
6.表示层:表示层对来自应用层的命令和数据进行解释,对各种语法赋予相应的含义,并按照一定的格式传送给会话层。其主要功能是“处理用户信息的表示问题,如编码、数据格式转换和加密解密”等。
7.应用层:应用层是计算机用户,以及各种应用程序和网络之间的接口,其功能是直接向用户提供服务,完成用户希望在网络上完成的各种工作。它在其他6层工作的基础上,负责完成网络中应用程序与网络操作系统之间的联系,建立与结束使用者之间的联系,并完成网络用户提出的各种网络服务及应用所需的监督、管理和服务等各种协议。此外,该层还负责协调各个应用程序间的工作。
TCP/IP协议族
OSI协议模型就像字典一样,面面俱到但也免不了臃肿,作为理解网络协议的教材尚可,但真正应用与实际中的还是TCP/IP协议的四层模型。实际上,TCP/IP协议簇是对OSI七层模型的整合:
- 应用层:OSI模型前三层的整合,主要作用是进行数据处理,常用的协议包括DNS,HTTP,FTP等。
- 传输层:对上层应用层提供处于网络连接中的两台计算机之间的数据传输。其中有两个不同的协议:TCP协议和UDP协议。
- 网络层:网络层用来处理网络上流动的数据包(网络传输的最小单位),该层通过一定的算法来选择数据交换时的最优线路。
- 链路层:用来处理网络传输设计到的一切硬件问题。
网络传输分为两方:客户端与服务器。发出请求的称为客户端,做出响应的称之为服务器。利用TCP/IP协议族进行网络通信时,会通过分层的顺序与对方进行交互,发送端从上往下走,接受端由下往上爬:
实际上,每过一层会添加或删除属于改层的首部,我们把这种数据包装的方法叫做封装。