TCP/IP协议是一个四层的网络体系结构
1,应用层
四层体系中的最高层,为用户提供进程服务。
在这层中,有众多的我们所熟知的应用层协议,例如超文本协议(HTTP),文件的FTP,支持邮件的SMTP
2,运输层
四层体系中的第二层,为两个主机之间的进程通信提供服务
因为每个每个主机可以有多个进程,所以运输层存在复用和分用功能
复用:多个进程之间可以共同使用运输层
分用:运输层可将多个进程的信息提交给上一层
运输层中有两个协议
一,TCP协议,就是我们所熟知的传输控制协议
组成类似于UDP协议
这个协议是面向连接的,传输的数据单位是报文段,可以提供可靠地交付 (可以理解为中间不会丢失信息)
二,UDP协议,即用户数据协议
组成:UDP首部+UDP数据部分
UDP首部=伪首部+源端口+目的端口+长度+校验和
伪首部=源IP+目的IP+0+17+UDP长度
这个协议是无连接的,传输的数据单位是用户数据报,并不保证可靠的交付,只能尽力交付
3,网络层
网络是为分组交换网上不同主机之间的信息
网络层把运输层产生的报文段或者用户数据组封装成包或者分组在不同主机之间流转
ip协议就是网络层协议
4,数据链路层
这一层就是两个主机之间的传输,总是在一个个链路上进行传输的
两个相邻接点之间的传输(主机-路由 或者 路由-路由)就会用到专门的链路层协议
链路层将网络层传下来的ip数据报组装成帧进行传输
这个过程是透明的,你虽然看不到,但是确是实际存在的
5,物理层
这一层可以不算在tcp/ip协议内,这一层主要是在物理服务之间数据以bit的方式进行传输
HTTP协议
URL是在www上的一个指针,指向文档位置。而URL构成 <协议>://<主机>:<端口>/<路径>
常用的协议有两种,http超文本传输协议 ftp文本传输协议
HTTP客户和HTTP用户之间,数据传输是以ASCII 码传送的,报文会被TCP传送
HTTP是无状态的,所以在发送数据的前后不需要建立连接,在支持高并发的HTTP请求时,有一定作用
当HTTP请求完成三次握手,然后发送数据的时候,万维网接到数据,会给HTTP请求的文档以报文的形式返回
这样请求以个文档的时间,就是请求时间加上两倍的RTT时间(分别在建立连接一个,数据请求一个)
HTTP1.0消耗时间太多,HTTP1.1 很好的解决了一部分问题
它使用持续连接
持续连接方式有两种
一,非流水线方式
在客户收到前一个请求的响应之后,才能发送下一个请求
它是一直和TCP相连,不断开,这样就可以节省一个连接时间和一个RTT时间
缺点是发送完一个请求,tcp连接就空闲了,浪费服务器资源
二,流水线方式
在用户收到响应之前就能发送一个另外一个响应
这样只用话费一个RTT时间,大大提升了效率
HTTP请求报文
1,开始行,用来区分是请求还是响应,请求的开始行叫做请求行,CR回车,LF换行
具体为 方法+空格+url+空格+版本+CRLF
方法有post,get,delete,option,trace等
2,首部行,说明浏览器,服务器,请求的一些信息
可为多行,每一行都有一个首部字段名称。每一行都会回车换行
3,常用实体,请求报文一般不用,响应报文也不一定有
HTTP响应报文
1,状态行,版本+空格+状态码+空格+短语+CRLF
状态码就是我们所熟知的 1xx,2xx,3xx,5xx,4xx等
2,首部行通请求
3,实体行
在HTTP中可以使用cookie来跟踪用户,可在首部行中加入set—cookie
HTTPS协议 :HTTP+SSL
因为http协议的数据是明文发送了,所以为了信息安全,设计了SSL,对数据进行加密,这就是HTTPS
HTTPS相比HTTP有如下区别
1,HTTPS需要申请ca证书,这个会收费
2,HTTP为明文传输,HTTPS加密
3,HTTP初始端口80,HTTPS初始端口443
4,HTTP连接简单,无状态,HTTPS需要证书验证
HTTPS数据传输
1,通过url建立连接,要求建立SSL连接
2,web收到请求需要把证书发给客户端
3,客户端,web段商议ssl等级
4,根据等级加密密钥,然后传送给网站
5,web端解密密钥
6,web端,客户端通信
HTTPS优点
1,安全性升高
2,数据正确的发送到客户端和web端
3,搜索排名上升
HTTPS缺点
1,握手时间加长,比http慢将近一半
2,连接缓存不如HTTP高效,会增加数据开销
3,SSL收费,并且需要绑定IP,不能绑定域名
4,不是绝对安全,在服务器劫持,黑客攻击面前起不到作用,只能防范一定的中间人攻击