1、HTTP请求有哪些?
HTTP请求包括以下九种方法:
- GET请求:用于请求获取Request-URI所标识的资源。
- POST请求:在Request-URI所标识的资源后增加新的数据。
- HEAD请求:请求获取由Request-URI所标识的资源的响应消息报头。
- PUT请求:请求服务器存储或修改一个资源,并用Request-URI作为其标识。
- DELETE请求:请求服务器删除Request-URI所标识的资源。
- TRACE请求:请求服务器回送收到的请求信息,主要用于测试或诊断。
- CONNECT请求:保留将来使用。
- OPTIONS请求:请求查询服务器的性能,或者查询与资源相关的选项和需求。
- PATCH请求:用来对已知资源进行局部更新。
2、假如客户要实现服务器边下载视频边观看,有什么办法?
要实现服务器边下载视频边观看,可以考虑以下几种方法:
- 使用HTTP适应性传输速率(HTTP Adaptive Streaming):这种方法根据客户端的传输速率和网络状况,将视频文件分成多个小块,以不同的比特率进行编码和传输。客户端可以根据网络状况自动选择最适合的块进行播放。
- 使用RTMP协议:RTMP是一种实时消息传输协议,可以在TCP之上传输多媒体数据。使用RTMP协议,可以在服务器端创建一个直播流,同时在客户端使用Flash播放器进行播放。
- 使用HLS协议:HLS(HTTP Live Streaming)是由苹果公司开发的实时流传输协议。它可以将视频流分割成多个小的HTTP流,每个流包含一部分视频。客户端可以根据网络状况选择最适合的流进行播放。
- 使用DASH协议:DASH(Dynamic Adaptive Streaming over HTTP)是一种基于HTTP的动态自适应流传输协议。它和HLS类似,可以将视频分割成多个小的HTTP流,根据网络状况进行自适应调整。
以上这些方法都可以实现在服务器端下载视频的同时进行播放,具体选择哪种方法取决于具体的业务需求和技术实现。
3、TCP和UDP区别
TCP和UDP都是传输层协议,但是它们有很多不同之处。TCP是一种面向连接的协议,而UDP是一种无连接的协议。TCP提供可靠的服务,也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠性。
TCP和UDP的优缺点无法简单地、绝对地去做比较:TCP 用于在传输层有必要实现可靠传输的情况;而在一方面,UDP 主要用于那些对高速传输和实时性有较高要求的通信或广播通信。
4、三次握手多余吗 可以改为两次吗?
如果试图将三次握手改为两次握手,那么可能会出现以下问题:
- 安全性问题:在两次握手的情况下,无法确保第二次握手的消息是否丢失或者被重放攻击。如果使用三次握手,那么可以进行确认,从而防止重放攻击。
- 同步问题:在两次握手的情况下,无法确保客户端和服务器之间的时间同步。如果存在时间差,可能会导致序列号错误而无法建立连接。使用三次握手可以更好地解决同步问题。
因此,三次握手是建立可靠连接的必要步骤,不能简单地改为两次握手。
5、四次挥手多余吗? 可以改为三次吗?
可以改为三次挥手,但是三次挥手并不是一个可靠的过程,因为可能存在半开连接的情况,即客户端发出了Fin报文,但是服务器没有收到或者在服务端回复了Ack报文后,客户端没有收到。这种情况下,连接将无法正常关闭。
在TCP四次挥手过程中,客户端和服务器都发送和接收Fin和Ack报文,从而确保连接的可靠关闭。因此,虽然四次挥手过程可能会显得有些多余,但它实际上是必要的,以确保网络通信的可靠性和安全性。
6、GET和POST的区别?
GET和POST都是HTTP请求方法,它们的本质区别在于:
- 数据传输方式:GET是从服务器上获得数据,而POST是向服务器传递数据。
- URL可见性:GET请求的参数会被附加到URL后面,而POST请求的参数则放在请求体中,不会暴露在URL中,因此POST的安全性更高。
- 数据传输长度:GET请求的参数长度受限于URL长度,通常不能超过2k-4k,而POST没有长度限制。
- 缓存性:GET请求可以被浏览器缓存,POST请求不可以。
- 编码方式:GET请求只支持URL编码,而POST支持多种编码方式。
- 数据安全性:GET请求参数在URL中明文传输,因此安全性较低,而POST请求参数在请求体中传输,相对更安全。
- 幂等性:GET请求是幂等的,即多次执行GET同一个URL,结果都是一样的,而POST请求则不是。
在实际应用中,应根据具体的需求和场景选择合适的请求方法。
7、TCP的连接过程分为哪三个阶段?
TCP连接过程分为三个阶段:建立连接、传输数据、断开连接 。
题目:
1.以下哪种设备是数据链路层设备()
A网桥
B集线器
C路由器
D适配器
数据链路层设备是网桥。
网桥工作在数据链路层,可以连接多个设备,并将这些设备连接在一起形成局域网。它可以接收和转发数据帧,并具有过滤和转发功能。因此,A选项是正确答案。
集线器(Hub)工作在物理层,通过碰撞域和广播的方式工作,可以将多个设备连接在一起,形成一个星型拓扑结构。
路由器(Router)工作在网络层,它可以根据IP地址进行数据的转发和路由,用于连接不同的网络。
适配器(Adapter)用于将设备连接到网络,它通常位于设备的边缘,例如计算机的网卡就是一种适配器。适配器可以转换数据格式,使得设备能够与网络通信。
2.下列关于TCP协议的叙述中,正确的是(
A.TCP将来自上层的字节流组成分组,然后交给IP协议
B.TCP将收到的报文段组成字节流交给上层
C.TCP提供广播传输
D.TCP提供了可靠无连接的数据传输
正确答案是B.TCP将收到的报文段组成字节流交给上层。TCP是一个面向连接的协议,它提供可靠的数据传输服务。在TCP协议中,发送方将数据分段并发送,接收方对接收到的报文段进行排序,然后组成字节流并交给上层。因此,选项A是错误的。TCP不提供广播传输,选项C也是错误的。选项D提到了无连接的数据传输,这是UDP协议的特点,而不是TCP。