1.TCP
传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议
三次握手
首先需要清楚的一点,不论握手多少次都不能确认一条信道一定是可靠的,但通过3次握手可以至少确认它是可用的,再往上加握手次数不过是提高它是“可用”的这个结论的可信度。也就是说任意次的握手都是“不可靠”的,握手成功只能说明握手时的通信是正常的,并不能保证握手后的通信是正常的。握手只能保证尽可能的可靠,而不可能保证绝对可靠
- 客户端发送SYN(SEQ=x)报文给服务器端,进入SYN_SEND状态。
- 服务器端收到SYN报文,回应一个SYN (SEQ=y)ACK(ACK=x+1)报文,进入SYN_RECV状态。
- 客户端收到服务器端的SYN报文,回应一个ACK(ACK=y+1)报文,进入Established状态。
三次握手完成,TCP客户端和服务器端成功地建立连接,可以开始传输数据了
2.TCP和UDP
TCP 是面向连接的传输控制协议,而UDP 提供了无连接的数据报服务;TCP 具有高可靠性,确保传输数据的正确性,不出现丢失或乱序;UDP 在传输数据前不建立连接,不对数据报进行检查与修改,无须等待对方的应答,所以会出现分组丢失、重复、乱序,应用程序需要负责传输可靠性方面的所有工作;UDP 具有较好的实时性,工作效率较 TCP 协议高;UDP 段结构比 TCP 的段结构简单,因此网络开销也小。TCP 协议可以保证接收端毫无差错地接收到发送端发出的字节流,为应用程序提供可靠的通信服务。对可靠性要求高的通信系统往往使用 TCP 传输数据。比如 HTTP 运用 TCP 进行数据的传输
TCP和UDP的区别:
1、TCP提供面向连接的传输,通信前要先建立连接;UDP提供无连接的传输,通信前不需要建立连接,所以UDP效率更高,
2、TCP提供可靠的传输(有序,无差错,不丢失,不重复);UDP提供不可靠的传输。(很多厂商在使用UPD的时候 会添加自己的协议数据校验和保障安全性)
2、TCP面向字节流的传输,因此它能将信息分割成组,并在接收端将其重组;UDP是面向数据报的传输,没有分组开销。
4、TCP提供拥塞控制和流量控制机制;UDP不提供拥塞控制和流量控制机制。
3.HTTP
HTTP超文本传输协议 协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,就是HTTPS
HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。
HTTP是一个无状态的协议。一个完整的http协议包括 请求行、请求头部、空行和请求数据四个部分组成。
服务器接收并处理客户端发过来的请求后会返回一个HTTP的响应消息。状态行、消息报头、空行和响应正文。
3.1HTTP请求方式
常用 :Get (查询) Delete(删除)Put(更新) Post(提交)
不常用: Options Trace Connect Head
3.2 Get Post 区别
1.get侧重查询数据 post 侧重提交数据
2.get的参数在url中 容易被劫持 post在请求行中。属于隐藏信息
3.get和post理论上参数的大小都是不限制的。但是厂商会限制get的大小
4HTTPS
是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保障传输过程的安全性
HTTPS 在HTTP 的基础下加入SSL层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。
4.1双向的身份认证 建立连接的步骤
1.客户端发起 SSL 握手消息给服务端要求连接。
2.服务端将证书发送给客户端。
3.客户端检查服务端证书,确认是否由自己信任的证书签发机构签发。 如果不是,将是否继续通讯的决定4.权交给用户选择 ( 注意,这里将是一个安全缺陷 )。如果检查无误或者用户选择继续,则客户端认可服务端的身份。
网友评论