移动互联网时代,自然离不开网络协议这一块。各种不同的设备和网络要想共享资源,互相通信,那么他们之间肯定要遵循一种统一的规则,否则无法形成一个完善的,和谐的网络气氛,就像各种不同的人们在一起相处,我们就要通过语言来沟通,礼貌来相处一样。在互联网中则是通过协议来管理和传递信息。而这些协议的基础正式TCP/IP协议。
一 . TCP/IP:只要是经常上网,接触网络的人应该都很熟悉这个词,都会经常听到这个词,但是不理解这个词的人应该有不少,我在之前的学习中其实也一直不清楚,所以这几天特地去了解了一下,在这里做个总结。
1.定义:全名—Transmission Control Protocol / Internet Protocol传输控制协议/互联网协议。它是一种网络通信协议,网络上的所有设备都必须都需要遵循这一规范,主机之间的数据传输方式和数据的交换方式。TCP/IP是互联网的基础协议,分割开来就是TCP进行数据的分割打包,IP进行地址的寻找。数据在传输的过程中会被分割成一段段的数据进行传输,任何一台接入互联网的设备又将遵守互联网协议,即接入互联网将被分配一个唯一标识的地址来定位到这台设备,我们平时称为IP地址,跟我们的身份证一样,在网络中唯一确定某台设备,使得数据可以准确的传输到指定的设备上。在接收端接收到这些数据之后将会按照数据分割之前留下的一些分段号记录信息进行数据的还原校验,TCP协议是一种非常可靠的,可控制的连接协议,在接收数据的时候,如果TCP检测到数据的传输出现了差错的话,要求服务端重新转发数据,使得它互联网中准确的,无差错的传输大量的数据。
2.盲点:容易混淆我们的一点是,我们经常会误以为是由TCP和IP两种协议组成的一种协议,其实不是得,TCP/IP是一个协议族,是很多不同的协议组合在一起组成的,其中TCP和IP是其中比较具有代表性的两种协议,一个负责传输层的数据传输,一个负责网络层的选路。
3.TCP和IP的却别:IP是一种网络层上提供起始点的,相当于向导一样的把数据尽可能快的从源点引导目的节点的不提供可靠性保证的非可靠性协议。TCP则是一种在传输层上提供可靠性的协议,它采用了一些超时重传,发送端和接收端之间的分组确认机制。在这点上这两个协议却是有着很大的区别。
4.TCP/IP的分层:
1). 数据链路层:处理搭建网络环境硬件(电缆等等)的物理接口细节,从而连接到网络中,这一层设备的驱动程序和一些网络接口卡等等。
2).网络层:处理分组在网络中的活动,源点和目的节点的选取并引导传输。其中包括一些协议:IP协议,ICMPIGMP协议。
3).传输层:主要为不同的主机提供一些数据的传递和交换。其中有两个典型的相反的协议。
TCP:两台不同的主机之间提供高可靠性的数据通信。它需要负责的工作有:接收应用层传递过来的数据并进行分割打包交给下面的网络层,已经确认接收到的,要进行一系列的设置确认等等。
UDP:这种协议提供的服务就比较简单了,他只是把分组的数据包从一台主机发送到另外一台主机,它不管系发送的结果,这与它无关,发送过程中出现的一切问题它不给予保证,
4).应用层:处理特定的应用程序细节,作为一名android开发人员在这里做的事情就比较多了,像我们接到服务端的响应结果之后,对数据进行的解析和各种其他的处理等等都这里进行。
二 . HTTP:HyperText Transfer Protocol超文本传输协议。使用的是一种 请求/响应模型,用来想服务端请求超文本传输到客户端的一种协议。
1.超文本传输协议最初是被设计来加载html文件到本地的浏览器中,是一种和服务端之间请求于应答的标准。使用的默认端口号:80.目前使用的HTTP是基于TCP之上实现的,是一种客户端与web服务端之间的应用层协议。web服务端上保存的全部都是超文本信息,客户端使用http协议从服务端拿,从而访问的目的。HTTP使用TCP实现而不选择UDP的原因在于我们的网页通常需要显示的都是大量的,有规律的,可控的,可靠的数据。而这些使用UDP是无法做到的
2.功能:HTTP主要是用来将WWW服务器中的数据传输到客户端,是浏览器可以更加高效,减少网络传输。可以正确快速的传输超文本信息以及对数据的控制。
3.HTTP协议 请求/响应 模型 , 客户端/服务端模式,web服务端监听客户端发过来的请求,请求头包含了请求的方法,URL,协议版本,以及包含请求修饰符,客户信息和内容。服务器以一个状态行作为响应,包括消息协议的版本,成功或者错误的编码。加上包含服务器信息,实体元信息以及可能的实体内容
4.HTTP采用的 客户端/服务器 模式,但是在实际的连接中,客户端和服务端是一个相对的概念,只存在与一个特定的连接期间,在某一个连接中的客户端也许是作为另一个连接中的服务端存在着,在http连接中,只要可以接受客户端发送过来的请求并响应可以被认为是一个服务端。基于http的协议的 客户端/服务端 模式的信息交换过程分为四步,建立连接,发送请求信息,发送相应信息,关闭连接。web服务端除了包含需要在浏览器上显示的html文件外,还有一个http驻留程序,用来监听客户端的请求和响应。
5.HTTP工作原理:
1).客户端与服务端进行三次握手的方式连接。
2).连接建立完成以后,客户端像服务端发送一个请求,请求方式的格式:(统一资源标识符(url)),协议版本号,然后是MIME信息—包括请求修饰符,客户机信息和可能的内容。
3).客户端接收到服务器返回的相应内容之后,通过浏览器显示在屏幕上,请求和响应完成以后,客户端跟服务端断开连接,但是http驻留程序一直存在。监听客户端的请求和返回相应内容。
三. 最后简单的介绍下HTTPS:是一种HTTP加密安全版的协议,在HTTP连接的基础上,对数据采用SSL的加密方式,使得在没有密钥的情况下,根本无法破解其中的数据,保证了其中的安全性。它仍然使用的http进行数据的传输,不同的是https传输的数据都是经过tcp和http之间的ssl层进行加密的。一下是https和http的差异比较:
1、https协议需要到ca申请证书,一般免费证书很少,需要交费。
2、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。