计算机网络相关知识点(二)

TCP如何保证传输过程的可靠性?

校验和:发送方在发送数据之前计算校验和接收方收到数据之后同样需要计算,如果不一致,那么代表传输有问题。

确认应答序,序列号:TCP进行传输时数据都进行了编号,每次接收方都通过首部ACK字段进行确认字段号。

超时重传:如果发送房发送一段数据后,长时间没有收到ACK的确认后,会重新发送该数据。

连接管理:三次握手四次挥手。

流量控制:TCP协议报头包含16位的窗口大小,接收方会在返回ACK时,同时把窗口值传递回发送方,发送方根据报文中窗口的大小控制发送速率

拥塞控制:通过慢开始、拥塞避免、快重传、快恢复等四个算法来进行拥塞控制,降低整个网络的拥塞程度,避免网络中发送的数据包数量过多,造成数据包阻塞延迟丢失。

Session和Cookie有什么区别?

保存位置:Cookie通过客户端浏览器,以文件形式保存在本地机器,数据容量受浏览器限制,一般不超过3kb;Session以对象形式保存在服务器端内存。
数据内容:Cookie中不允许出现特殊内容(中文、特殊符号);Session中允许保存任意内容;
存储周期:Cookie的存储周期由Max Age属性设置,可以长期保存;Session的实现依靠一个名叫JSESSIONID的Cookie,Max Age过期时间默认为-1,关闭浏览器窗口,该Cookie则失效,对应的Session从而也失效

浏览器请求一个网址的过程

1.首先通过DNS服务器把域名解析成IP地址,通过IP和子网掩码判断是否属于同一个子网;
2应用层构造用于请求http报文,传输层添加TCP头部,网络层添加IP头部,数据链路层添加以太网协议头部
3数据经过路由器、交换机转发,最终达到目标服务器,目标服务器同样解析数据,最终拿到http报文,按照对应的程序的逻辑响应回去。

计算机网络相关知识点(二)_第1张图片

谈谈http协议get和Post的区别

GET和P6OST是HTTP请求的两种请求方法,本质上都是通过TCP连接进行通信;
GET用于获取数据,POST用于提交数据;
GET使用URL传递请求参数,POST使用Request Boby提交数据;
GET和POST的请求报文格式不同
POST方法请求报文第一行是这样的 POST /uri HTTP/1.1 \r\n
GET方法请求报文第一行是这样的 GET /uri HTTP/1.1 \r\n
GET是幂等且可缓存,POST非幂等且不可缓存;


谈谈http有哪些请求方式,各有什么特点?

GET 获取资源:GET方法用于使用给定的URI从给定服务器中查询获取信息或数据。
HEAD 获取响应消息报头:HEAD 和 GET方法类似,但是不返回响应报文内容主体部分,仅传输响应报头部分。
POST 提交数据增加资源:POST方法用于将数据发送到服务器以创建或更新资源。使用post方法,如果两个请求相同,后一个请求不会会把第一个请求覆盖掉,所以post用于增加资源。
PUT 修改资源:PUT方法用来修改资源。使用put方法,如果两个请求相同,后一个请求会把第一个请求覆盖掉,所以put用于修改资源。
DELETE 删除资源:DELETE方法用来删除指定的资源,它会删除URI给出的目标资源的所有当前内容。
●OPTIONS 查询支持的方法:查询指定的 URL 能够支持的方法。会返回 Allow: GET, POST, HEAD, OPTIONS 这样的内容。

谈谈BIO和NIO的区别?

BIO:同步阻塞IO,每一个客户端连接,服务端都会对应一个处理线程,对于没有分配到处理线程的连接就会被阻塞或者拒绝。相当于是一个连接一个线程。

计算机网络相关知识点(二)_第2张图片

NIO:同步非阻塞IO,基于Reactor模型,客户端和channel进行通信,channel可以进行读写操作,通过多路复用器selector来轮询注册在其上的channel,而后再进行IO操作。这样的话,在进行IO操作的时候再用一个线程去处理就可以了,也就是一个请求一个线程。

计算机网络相关知识点(二)_第3张图片

你可能感兴趣的:(计算机网络)