计算机网络(应用层)

UDP协议:

        UDP协议提供了无连接的、不可靠的数据包服务。无连接服务意味着两个交换报文的终端之间没有逻辑连接。每个报文都是独立的实体,它被封装在一个称为数据报的分组中。

        UDP协议可以在传输过程中检查数据是否被破坏,但是不要求发送端重传被破坏的或丢失的数据。

        对于某些应用,UDP的优势在于它是面向报文的。它保留报文边界。

        举个例子来说的话就是邮局,每个信件都是带有它自己的发送者和接收者的独立实体,如果一个邮件在发送过程中丢失或者被损坏,邮局概不负责。


TCP协议:

        TCP协议提供了可靠的字节流传输。TCP要求两个终端首先通过交换一些连接建立分组来建立一个逻辑连接。这个阶段有时称为握手。握手过后两个终端就可以向着彼此的方向以报文段形式发送数据块。

        通过计算交换的字节数,可以检测字节的连续性。比如说如果某些字节丢失或者损坏了,接收端可以请求重新发送这些字节,这使得TCP成为一个可靠的协议。就好比打电话,如果一方听不清,可以请求对方再说一遍。

        不过TCP协议不是面向报文的,它不保留报文边界。


HTTP协议(超文本传输协议)

        当我们向服务器发送请求的时候,首先需要建立客户端与服务器之间的连接。这里我们使用了TCP服务,我们知道TCP是可靠的协议。这意味着在客户和服务器之间进行任何事务之前,它们必须建立连接。事务之后,连接应当终止。

        在我之前的有关HTTP协议里面有提到HTTP协议最开始只是用来传输文本的,这种情况下我们一般只要发送一次请求就能得到所有文本了,但是随着网络的高速发展,网页已经还包含了其他的对象,比如链接,图片,视频等等。。那么这个时候一个请求是没办法完成所有任务的。所以从这里我们引出非持续连接和持续连接。

        非持续连接:

             非持续连接简单点将就是我们每发送一个请求并且得到响应后就关闭连接。可是我们想一下,如果我们要请求的数量非常非常的多的话,就需要不断的建立连接和关闭连接,这样就会导致花在建立和关闭连接上的时间开销非常的大,这显然不是我们想要看到的画面。因此持续连接出现了。

        持续连接:

                显然,持续连接就是只需要建立一次连接,等待所有请求发送并且得到响应之后再关闭连接即可,这样就能省下非常多的时间了。

有关报文组成的部分就不在这里说了,可以直接去看之前的博客。

        

Cookie

        那么我们接着说HTTP协议,HTTP是一种无状态的协议,什么意思呢。就是你发送一个请求,得到响应之后客户端和服务器之间的连接就到此为止了。试想我们在天猫或者京东购物的时候,我们需要登录才能进行购买。

        登录之后我们进入天猫首页,此时我们的第一次请求到这里结束。在这之后我们看到我们想要买的东西,点击进去,由于是无状态的,我们会发现我们需要重新登录,因为HTTP协议并不会记录你之前的登陆信息,这就是无状态协议不好的地方。所以为了能够继续保持登录的状态,聪明的各位前辈就想出了Cookie这个东西,利用cookie,我们就可以使登陆状态得以保持。

        当我们第一次登陆的时候,我们将登陆信息发送给了服务器,然后服务器创建cookie,将cookie包含在响应中发送回给客户端,因此当客户继续访问该网站时,服务器就会知道这个用户已经登陆过了,无需重新登录。

        

猜你喜欢

转载自blog.csdn.net/huangguangyourena/article/details/80060993