tcp/ip协议等相关知识

转载:

https://blog.csdn.net/qq_41517936/article/details/80886618

https://www.cnblogs.com/daijiabao/p/11183265.html

https://developer.51cto.com/art/201906/597961.htm

https://www.cnblogs.com/sujing/p/10927569.html

先扒一扒HTTP协议背景?

  • HTTP(HyperText Transfer Protocol) 即超文本传输协议,现在基本上所有web项目都遵从HTTP协议(协议就是一种人为的规范)。

  • 目前绝大部分使用的都是HTTP/1.1版本(1.0太老,2.0仍在制订中。。。)。

因为HTTP协议是属于TCP/IP协议簇的,所以先简单介绍下与HTTP相关的TCP/IP知识。

TCP/IP简介。

  • TCP/IP是一个协议簇,是由许多协议组成的。

TCP/IP四层模型。

  • TCP/IP按照层次从上至下分为四层:应用层,传输层,网络层,数据链路层。(实际上最初理论上OSI模型是分的七层,我们程序猿的话通常只用分四层就行了。)

 确保可靠性的TCP协议。

  • 按层次分,TCP位于传输层,提供可靠的字节流服务。所谓的字节流服务(Byte Stream Service)是指,为了方便传输,将大块数据分割成以报文段(segment)为单位的数据包进行管理。而可靠的传输服务是指,能够把数据准确可靠地传给对方。一言以蔽之,TCP协议为了更容易传送大数据才把数据分割,而且TCP协议能够确认数据最终是否送达到对方。

  • 确保数据能到达目标。为了准确无误地将数据送达目标处,TCP协议采用了三次握手(three-way handshaking)策略。用TCP协议把数据包送出去后,TCP不会对传送后的情况置之不理,它一定会向对方确认是否成功送达。握手过程中使用了TCP的标志(flag) ——SYN(synchronize) 和ACK(acknowledgement)。发送端首先发送一个带SYN标志的数据包给对方。接收端收到后,回传一个带有SYN/ACK标志的数据包以示传达确认信息。最后,发送端再回传一个带ACK标志的数据包,代表握手结束。若在握手过程中某个阶段莫名中断,TCP协议会再次以相同的顺序发送相同的数据包。除了上述三次握手,TCP协议还有其他各种手段来保证通信的可靠性。

发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该层所属的首部信息。反之,接收端在层与层传输数据时,每经过一层时会把对应的首部消去。这种把数据信息包装起来的做法称为封装(encapsulate)

HTTPS=HTTP+SSL,在HTTP层和TCP之间加了一个SSL/TLS层。

SSL(Secure Sockets Layer)中文叫"安全套接层",后来由于广泛应用,SSL标准化之后就改名为TLS(Transport Layer Security)。

其实HTTPS就是通过上面说到的那些手段来解决网络上可能存在的数据泄密、篡改、假冒的这些问题,保证网络传输的安全。

原文地址:https://www.cnblogs.com/shengyin/p/12830655.html