1、TCP和UDP的区别和联系
TCP -- 传输控制协议,提供的是面向连接,可靠的字节流服务。即客户和服务器交换数据前,必须现在双方之间建立一个TCP连接,之后才能传输数据。并且提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。
UDP -- 用户数据报协议,是一个简单的面向数据报的运输层协议。它不提供可靠性,只是把应用程序传给IP层的数据报发送出去,但是不能保证它们能到达目的地。由于UDP在传输数据报前不用再客户和服务器之间建立一个连接,且没有超时重发等机制,所以传输速度很快。
2、Http协议简介
- HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。
- HTTP是基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)
- HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS。如下图
- HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。
- HTTP默认的端口号为80,HTTPS的端口号为443。
3、一次完整的http请求过程
数据从应用层,经过Tcp/Ip协议栈封装,经过网卡发送到网络上,根据子网掩码确定对端所在的网络号,到达目的网段的时候在由arp/rape得到目标主机得到地址,被目标主机的网卡接受,然后在经过协议栈解包,最后到达应用主机的应用层。
4、长连接和短连接
长链接,指在一个连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,需要双方发链路检测包。
长链接操作步骤:建立连接——数据传输...(保持连接)...数据传输——关闭连接
长连接可以省去较多的TCP建立和关闭的操作,减少浪费,节约时间
短连接的操作步骤是:建立连接——数据传输——关闭连接...建立连接——数据传输——关闭连接
如果客户请求频繁,将在TCP的建立和关闭操作上浪费较多时间和带宽。
长连接:长连接可以节省较多的TCP连接和释放的操作,节约时间,对于频繁请求资源的用户来说,适合长连接。由于有保活功能,当遇到大量的恶意连接时,服务器的压力会越来越大。这时服务器需要采取一些策略,关闭一些长时间没有进行读写事件的的连接。
短连接:短连接对服务器来说管理比较简单,只要存在的连接都是有效连接,不需要额外的控制手段,而且不会长时间的占用资源 。但如果客户端请求频繁的话,会在TCP的建立和释放上浪费大量的时间。
无连接:无连接指的是http层是无连接的。