这些都是协议,协议是什么,就是约定好都格式,你我共用同一种格式或行为,你通过一种格式方法去存放数据,我就可以用固定方法去解析这种格式,省去了对其他乱七八糟对格式兼容的步骤。同时也对行为做出了一些规范,
HTTP
HTTP协议是用来规范和约束HTTP请求的。
HTTP请求和响应中的内容称为报文。存放着客户端与服务器之间的交流信息。
报文分为以下3个部分。
状态行
状态行保存了服务器与客户端之间交流的最基本信息。
请求状态行
请求方法字段 告知你这个请求是get还是post还是其他的。
HTTP协议版本 告知服务器你和他沟通交流用哪个协议。
URL 你将请求的链接地址。
响应状态行
状态码 通知客户端进行相应操作的,告知你的请求在服务端大概发生了啥。具体哪些表示什么意思可以看这个http状态码。
HTTP协议版本 与请求状态行一样都是记录HTTP协议版本,好让服务端和客户端保持相同协议对接。
状态提示 与状态码的作用差不多。
头部内容
头部内容一般放一些自定义想要告知客户端/服务端的字段数据。
请求头
里面有各种需要去像服务端提供的信息。
比如权限字段,带有你的唯一标识码
比如user-agent
,表明你浏览器的信息
比如cookie就放在这边
等一些自定义想要告诉服务器等信息都会被加到这边去
但是请求头不能带中文,不能带中文,不能带中文
头信息必须是 ASCII 码.
响应头
响应头也差不多,放一些自定义要告诉客户端的字段。
空行
发送回车符和换行符表示请求头到这里结束了
响应正文
一般存放量比较大的自定义正式数据内容
请求体
存放传给服务端的主要数据。
响应正文
传给客户端的主要数据。
SSL
http报文中的内容被一些中间商看光了,就想着加密,因为中间商可以模拟“发起者”和“接收者”。所以单单对称加密或者非对称加密已经不管用了。
然后就出来一个用第三方信用做背书的三方签名,用非对称加密把对称加密的钥匙和三方签名一起送过去。
因为三方签名只能用计算机自带密钥解密,加密只能由第三方加密,所以中间商想要解密后想要原封不动将错误的信息送过去这个渠道就不行了。
TCP
这个是在传输层的协议,也就是http的下面一层。用来约束和规范数据的传输。
TCP有繁重的握手挥手动作来保持传输的可靠性。
TCP的拥塞控制方法
慢开始
就是慢慢开始扩张传输速率
拥塞避免
让拥塞窗口慢慢变大,如果遇到拥塞,则把门限设置成为原来的拥塞时的一半,在门限之前用慢开始算法,在门限之后用拥塞算法。
慢开始程指数规律增长
三次挥手四次握手
三次挥手的目的是,想让我知道你能接收到我的数据,也想要你知道你能接收到我的数据
第一次我给你发信息,然后你回我一个信息我知道你接收到了我的数据,然后我再给你发信息表明你知道了我可以接收到你的数据
四次挥手的目的和前面的差不多,但是因为是双方都可以发送数据要等双方都不发数据了,才停止。
面向字节流
将报文以字节流的方式进行传输
流就是将报文字段一点一点发送出去。
只支持单播
只能一对一
全双工
双方可以互相发送数据
UDP
不会有三次握手四次挥手那样去连接
可以一对多广播
不管报文多长,直接发