链接
30dayMakeCppServer/day01-从一个最简单的socket开始.md at main · yuesong-feng/30dayMakeCppServer · GitHub (githubfast.com)
socket是什么?套接字是什么? (biancheng.net)
HTTP协议的请求方式有哪些?
我的回答:
5种,put、get、post、delete、option
答案:
9种,HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD 方法。
HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。
GET【获取资源】
发送请求取得服务器上的某种资源,Get请求本身不应当携带任何呈现数据
POST【传输实体文本】
向指定资源提交数据进行处理请求,数据在请求题里
PUT【传输文件】
向服务器传送的数据取代指定的文档的内容,指定上传资源存放路径,HTML表单也不支持这个
重要区别:PUT通常指定了资源的存放位置,而POST则没有,POST的数据存放位置由服务器自己决定。
DELETE【删除文件】
请求服务器删除指定的资源。
OPTIONS【询问支持的方法】
询问服务器可以提交哪些请求方法,若请求成功,则它会在HTTP头中包含一个名为“Allow”的头,值是所支持的方法,如“GET, POST”。
HEAD【获得报文首部】
类似于 GET,但是返回的响应中没有具体的内容,欲判断某个资源是否存在时使用。
PATCH【局部更新文件】
是对 PUT 方法的补充,用来对已知资源进行局部更新
TRACE【追踪路径】
要求服务器回显收到的请求,让Web服务器端将之前的请求通信还给客户端的方法。主要用于测试或诊断。
CONNECT【要求用隧道协议连接代理】
HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器,CONNECT方法要求在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信。主要使用SSL(安全套接层)和TLS(传输层安全)协议把通信内容加密后经网络隧道传输。
UDP(用户数据报协议)是什么?
我的回答:
呃,u d p的数据报呢,它是u d p协议,它是无连接的协议,它跟t c p协议这个有有呃有连接的不一样,而且它是呃不保证。,不保证可靠的呃,他是。,呃。,好像不是流式,具体我也不太清楚。
答案:
什么是UDP_UDP简介_UDP的优势以及应用场景-腾讯云开发者社区 (tencent.com)
是一种无连接、不可靠、高效、基于数据报的传输层协议。
无连接
传输数据时不要建立连接,直接发送
不可靠
不保证传输的可靠性,传输中 可能出现数据包丢失、重复、乱序,需要上层自行处理
高效
数据包结构简单,就包含源端口、目标端口、长度、校验和,以及数据
延迟低
不需要等待确认
轻量级
功能少
数据包结构
源端口
目标端口
长度
校验和
数据
处理丢包:
重传:当UDP发送方没有收到确认包,就会认为数据包已经丢失,立即重传丢失的数据包。
超时重传:当UDP发送方发出数据包后,如果一定时间内没有收到确认包,就会认为数据包丢失,立即重传丢失的数据包。
处理错误:
丢弃:让对方重传
纠错:在数据中加入冗余信息,如检验和,接受端自己检测和纠正错误
请你说说MySQL的ACID特性分别是怎么实现的?
MySQL是如何实现事务的ACID-腾讯云开发者社区-腾讯云 (tencent.com)
我的回答:
mysql的特性分别是怎么实现的?,mysql的话是a是原子性,c c是什么?,c i d我都不知道是什么东西啊,这个我确实不太清楚。
答案
事务的四大特性ACID
原子性A
事务中所有操作要么全部成功、要么全部失败,没有中间状态。
一致性C
事务的处理不能违背数据之间规则,比如转账,钱只能从一个账户到另一个账户,不能凭空出现和消失。
隔离性I
事务之间相互隔离,我在处理数据的时候不能被其他事务影响,最严谨的情况是事务串行处理。
持久性D
事务完成后,发生的改变是永久的,不能因为其他因素印象,例如:缓存,缓存的东西可能因为机器故障而丢失这次改动。
锁解决隔离性I
原子性A的解决
异常或执行失败后进行回滚。
持久性D
保证当MySQL宕机或停电后,可以通过redo log最终将数据保存至磁盘中。
在对Buffer Pool中的数据进行修改的时候通过redo log记录这次操作,当事务提交时会通过fsync接口对redo log进行刷盘。
redo log是记录在磁盘中的,所以当MySQL出现宕机时,可以从磁盘中读取redo log进行数据的恢复,从而保证了事务的持久性。
一致性
需要数据库层面保证,又需要应用层面进行保证