计算机网络,网络(OSI)七层模型,三次握手四次挥手,get与post请求区别,网络IO(BIO\NIO\AIO),TCP与UDP区别

1.OSI模型?

开放式系统互联通信参考模型(Open System Interconnection Reference Model)

OSI网络七层模型:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层

TCP/IP协议群简化了OSI七层模型:应用层、传输层、网络层、数据链路层、物理层

2.基于TCP的三次握手和四次挥手?

三次握手:证明客户端和服务端都可以发送和接收请求

客户端向服务端发送请求,服务端确定了客户端可以发送请求

服务端向客户端响应请求,客户端确定了服务端可以发送和接收请求

客户端再向服务端发送请求,服务端确定了客户端可以接收请求

四次挥手:

客户端向服务器发送断开连接请求

服务器接收到后响应客户端,如果还有没响应完的数据,将数据响应给客户端

服务器响应完数据,向客户端响应断开连接请求

客户端向服务端发送应答请求。

3.get和post请求的区别?

get一般是从服务器上获取信息,post一般是向服务器发送信息

url地址栏可见性不同,get请求参数是可见的,post请求参数url上是不可见的

传输大小不同,get传输数据量小2kb(主要首先url长度),post传输量大,一般不受限制

Get请求参数直接放在url地址栏中所以不安全,post请求参数是放在请求体中的相对安全

Get请求只能传递ascLL字符,post支持所有字符。

4.网络IO(BIO、NIO、AIO)

BIO、NIO、AIO是三种网络IO模型

BIO是同步阻塞IO模型,NIO是同步非阻塞IO模型,AIO是异步非阻塞IO模型

同步和异步:指在代码执行过程中,是否阻塞当前线程

阻塞与非阻塞:指是否支持多个客户端连接

BIO指同步阻塞IO模型(jdk1.4之前),服务端一个线程只能同时处理一个客户端的请求,每连接一个客户端,服务端都要创建一个线程

NIO指同步非阻塞IO模型(jdk1.4之后),服务端一个线程处理多个客户端请求,需要把服务端和客户端管道注册到selector(多路复用器)上,添加了多路复用器监听所有管道的状态

AIO指异步非阻塞IO模型(JDK1.7之后),在执行时当前线程不会被阻塞,而且不需要多线程可以实现多客户端访问,AIO是基于事件完成的

5.TCP与UDP区别?

TCP面向连接的,提供可靠服务,只支持一对一连接,面向字节流

UDP是无连接的,发送数据不需要建立连接,效率比TCP高,适用于高速传输和信息广播,支持一对一、一对多、多对多连交互通信,面向报文首部开销小

相关推荐
清水迎朝阳40 分钟前
客户端软件 — 用户统计方案
服务器·c++·客户端·用户统计
会编程的土豆1 小时前
Go 模板初识
linux·运维·服务器
for_ever_love__1 小时前
iOS:网络请求再学习
网络·学习·ios·objective-c
腾讯蓝鲸智云1 小时前
标杆客户实践提炼:CFlow 版本价值流模板实战指南
运维·服务器·自动化·云计算·devops
阿标的博客1 小时前
Active Directory 组织单位和用户
服务器
一名普通的电源工程师2 小时前
E0512XT-1WR3 适配优选 钡特电源 DF1-05D12XT|1W 隔离5V转±12V模块电源选型参数技术解析
大数据·网络·人工智能
Deryck_德瑞克2 小时前
【Nginx】配置差异分析
服务器·前端·nginx
2301_780789662 小时前
零信任时代:WAF 从边界防护到微隔离的架构跃迁
网络·安全·web安全·kubernetes·ddos
前端 贾公子2 小时前
第06章:结构化输出 (上)
java·服务器·前端
一只小菜鸡..3 小时前
南京大学 操作系统 (JYY) 学习笔记:持久化的黑魔法——从磁铁、刻坑到闪存电荷
服务器·笔记·学习