自我理解:TCP和UDP、HTTP、进程和线程

一、TCP和UDP

1、什么是TCP和UDP?

  • TCP是面向连接的协议,发送数据前要建立连接,TCP提供的是可靠传输
  • UDP是无连接的协议,发送数据前不需要建立连接,是不可靠传输

2、TCP和UDP的区别?

  • TCP是面向连接的协议,发送数据前要建立连接,提供的是可靠传输
  • UDP是无连接的协议,发送数据前不需要建立连接,是不可靠的传输
  • TCP通信就像打电话,接通了,确认身份后,才开始通信
  • UDP通信就像广播
  • TCP只支持点对点通信
  • UDP支持一对一、一对多、多对一和多对多
  • TCP是面向字节流的
  • UDP是面向报文的

3、TCP和UDP的应用场景?

  • TCP要求输出的内容可靠,多用在文件传输、邮件传输等
  • UDP一般用于实时性要求较高的情况,比如游戏、直播、视频等

4、形容TCP和UDP?

  • TCP:张三在微信上问李四方便打电话吗,李四说方便你打吧,张三说好那我打了(建立连接),然后再打电话
  • UDP:广播站:各位同学操场集合

5、TCP的三次握手协议?

  • 客户端对服务器端说:方便打电话吗
  • 服务器端说:方便,打吧
  • 客户端:好,那我打了(连接建立)

6、TCP建立连接可以两次握手吗?为什么?

  • 不可以。如果只有两次握手协议,服务器端接收到客户端的连接请求后,就会立刻建立连接,等待客户端发送数据,而此时客户端并不发送数据,就会造成服务器端的资源浪费
  • 例:服务器端接收到已经失效的连接请求(第一个连接请求停滞,第二个连接请求成功且完成传输),就立刻连接等待客户端发送数据

7、TCP的四次挥手?

四次挥手断开连接是为了确定数据全部传输完成

  • 客户端对服务器端说:我们分手吧。
  • 服务器端说:好,我知道了。(服务器端说一些感慨的话)
  • 服务器端确定没有话想跟客户端说了,就说:删微信吧。
  • 客户端说:好,删吧。

8、TCP断开连接可以三次挥手吗?为什么?

即服务器端同时发送确认信号和断开连接请求。

  • 第一次挥手表示客户端已经发送完数据,但是服务器端这个时候可能还有数据没有发送完成,所以先给客户端发送一个确认信息,等待全部数据发送完成后才向客户端发送断开连接请求,表示自己的数据也已发送完成。
  • 如果采用“三次挥手”,客户端就可能不能完整地接收来自服务器端的数据,不能保证可靠传输。

二、HTTP协议

1、什么是HTTP协议?

  • HTTP协议是对浏览器和服务器之间实现可靠传输的超文本数据(包括文本、声音、图像等各种多媒体文件)的协议,简称“超文本传输协议”(超文本即不只是文本)
  • HTTP协议属于应用层

2、Socket和HTTP的区别和应用场景?

  • Socket连接即所谓的长连接,客户端与服务器端的连接一旦建立将不会主动断开
  • Socket应用场景:网络游戏、直播等持续交互
  • HTTP连接即所谓的短链接,客户端向服务器端发送一次请求,服务器端响应后即会断开等待下次请求
  • HTTP应用场景:网站

3、HTTP和HTTPS的区别?

HTTPS(超文本传输安全协议)就是在HTTP上加了加密处理+认证+完整性保护

  • HTTP 是明文传输,HTTPS 通过 SSL/TLS 进行了加密
  • 端口不同,HTTP 的端口号是 80,HTTPS 是 443
  • HTTPS 需要到 CA 申请证书,要钱
  • 连接方式不同,HTTPS 的连接很简单,是无状态的;HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 协议安全。

4、HTTP请求的步骤?

  1. 建立TCP连接
  2. 浏览器向服务器发送请求行
  3. 浏览器发送请求头(通知服务器头消息发送完毕)
  4. 服务器应答
  5. 服务器发送应答头
  6. 服务器向浏览器发送数据
  7. 服务器关闭TCP连接

5、常用的HTTP状态码和分类?

  • HTTP状态码表示客户端HTTP请求的返回结果
  • 状态码的分类:
类别描述
1xx:提示信息-表示请求已接收,正在处理
2xx:成功-表示请求已被成功接收、理解、接受
3xx:重定向-要完成请求必须进行更进一步的操作
4xx:客户端错误-请求又语法错误或请求无法实现
5xx:服务器端错误-服务器未能实现合法的请求
  • 常见的状态码:
状态码描述
200:请求被正常处理
204:请求被受理,但没有资源返回
301:永久性重定向
302:临时重定向
400:请求报文语法有误,服务器无法识别
401:请求需要认证
403:请求的对应资源禁止被访问
404:服务器无法找到对应资源
500:服务器内部错误
503:服务器正忙

6、HTTP协议中有哪些请求方式?

请求方式描述
get:用于请求访问已经被URL(统一资源标识符)识别的资源,可以通过URL传参给服务器
post:用于传输信息给服务器,主要功能与get类似,但一般推荐使用post
put:传输文件,报文主体中包含文件内容,保存到对应URL位置
head:获取报文首部,与get类似,但不返回报文主体,一般用于验证URL是否有效
patch:客户端向服务器传送的数据取代指定的文档内容(部分取代)
trace:回显客户端请求服务器的原始请求报文,用于“回环”诊断
delete:删除文件,与put相反,删除对应URL位置的文件
options:查询相应URL支持的HTTP方法

7、get方法和post方法的区别?

  • get重点是从服务器上获取资源;post重点是向服务器发送数据
  • get传输的数据量小,因为受到URL长度限制;post可以传输大量数据
  • get不安全,请求的数据在URL上是可见的;post是放在请求头部的,是安全的

8、Cookie和Session对于HTTP的作用?

  • HTTP协议本身无法判断用户身份,所以需要Cookie或Session
  • 什么是Cookie?
    • Cookie是由服务器保存在用户浏览器上的文件,可以包含用户的相关信息
  • 什么是Session?
    • 浏览器和服务器会话过程中,服务器会分配一块存储空间给Session。会话期间创建的一些变量可以存储在Session对象中
  • Cookie和Session的区别?
    • Cookie数据存放在客户端上,安全性较差;Session数据存放在服务器端上,安全性相对更高
    • Cookie的生命周期可以自行定义;Session的生命周期在页面关闭就结束
    • Cookie保存的数据大小有限制;Session基本无限制

三、进程和线程

1、什么是进程和线程?

  • 进程:程序的一次执行过程。每个进程都有自己独立的内存空间,一个进程可以有多个线程
  • 线程:进程中的一个执行任务,是程序执行的最小单元。多个进程共享一片内存空间,可共享数据

2、进程和线程的区别?

  • 进程是操作系统资源分配的基本单位;线程是处理器任务调度和执行的基本单位
  • 每个进程都有独立的内存空间;同一类线程共享一片内存空间,每个线程有自己独立的运行栈和程序计数器
  • 进程之间切换开销较大;线程之间切换开销较小
  • 一个进程内可包含多个线程,且多个线程是共同执行的;线程是进程的一部分,被称为轻量级进程
  • 一个进程崩溃后,对其他进程没有影响;一个线程崩溃后,整个进程都会崩溃

3、什么是多进程和多线程?

  • 多进程:操作系统中同时运行的多个程序,一般是同时运行多个软件
  • 多线程:同一个进程中同时有多个线程正在执行
  • 在一个程序中,有很多的操作是非常耗时的,如果使用单线程,那么程序就必须等待这些操作执行完成之后才能执行其他操作。使用多线程,可以在将耗时任务放在后台继续执行的同时,同时执行其他操作

注:多线程是异步的,但这不代表多线程真的是几个线程是在同时进行,实际上是系统不断地在各个线程之间来回的切换(因为系统切换的速度非常的快,所以给我们在同时运行的错觉)

4、多线程与多进程,选择谁?

  • 单进程单线程:一个人在一张桌子上吃饭
  • 单进程多线程:多个人在同一张桌子上一起吃饭
  • 多进程单线程:多个人各自在自己的桌子上吃饭
  • 多线程的问题是:一道菜在一时刻只允许一个人吃,多个人同时吃一道菜就会发生争抢,此时就必须等一个人夹一口之后,再给另外一个人夹,也就是说资源共享就会发生冲突争抢
  1. 对于 Windows 系统来说,加桌子(创建进程)的时间开销很大,因此 Windows 鼓励大家在一张桌子上吃饭。Windows 多线程学习重点是要大量面对资源争抢与同步方面的问题
  2. 对于 Linux 系统来说,加桌子(创建进程)的时间开销很小,因此 Linux 鼓励大家尽量每个人都在自己的桌子上吃饭。这带来新的问题是:坐在两张不同的桌子上,说话不方便。因此,Linux 下的学习重点大家要学习进程间通讯的方法

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恣睢s

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值