面试经典题型总结篇(二)

目录

一、MySQL

1.数据库基础

2.CRUD

2.1insert

2.2select

2.3update

2.4delete

3.数据库约束

4.聚合查询

5.分组查询

 6.关键字优先级

 7.数据库索引

8.数据库事务

二、网络体系结构

1.OSI七层模型

2.TCP/IP四层体系结构

3.OSI和TCP/IP的区别

4.五层协议体系结构

5.体系结构总体理解

 三、网络协议

1.应用层协议

 2.HTTP与HTTPS

2.1概念

2.2两者的区别

2.3HTTP请求报文

2.4HTTP的get和post方法

2.5HTTP常用状态码

2.6cookie和session

3.传输层协议

3.1TCP

3.2TCP“三次握手”

3.3TCP“四次挥手”

3.4UDP

3.5UDP与TCP的区别


一、MySQL

1.数据库基础

显示数据库:

SHOW DATABASES;

创建数据库:

CREATE DATABASE IF NOT EXISTS 数据库名;

设置字符集:

CHARACTER SET UTF-8;

使用数据库:

USE 数据库名;

删除数据库:

DROP DATABASE IF EXISTS 数据库名;

查看表结构:

desc 表名;

创建表:

create table if not exists 表名; comment 增加字段说明

删除表:

drop table 表名;

2.CRUD

CRUD分别代表数据库操作的create(新增)、retrieve(查询)、update(更新)、delete(删除)。

2.1insert

新增一行:insert into 表名 values(字段名);

新增特定字段的信息:insert into 表名 (字段名)values(字段信息);

2.2select

全列查询:select * from 表名;

字段表达式查询:select 字段名,表达式 from 表名;

去重查询:select distinct 字段 from 表名;

查询后排序:select 字段名 from 表名 order by desc(降序)/asc(升序);

条件查询: select 字段名 from 表名 between  条件 and 条件;或  select 字段名 from 表名 in(具体数值);或  select 字段名 from 表名 like '    ';(%表示任意多个字符、_表示任意一个字符)

分页查询: select 字段名 from 表名 limit s,n ;(从s开始查询n条数据)

2.3update

update 表名 set 字段名的修改内容;

2.4delete

delete from 表名 where 条件;

3.数据库约束

NOT NULL:字段不能为空

UNIQUE:字段取值唯一

DEFAULT:默认值

PRIMARY KEY:主键约束

FOREIGN KEY: 外键约束          eg:foreign key (字段)references 表(字段);   

4.聚合查询

COUNT:查询数据数量

SUM:查询数量总和

AVG:查询数据平均值

MIN:查询最小值

MAX:查询最大值

5.分组查询

group by:能够将数据按字段分组,查询字段中信息所对应的值,通常与having连用用来过滤信息和限制条件。

 6.关键字优先级

from > on > join > where > group by > with > having > select > distinct > ordey by > limit 

 7.数据库索引

当数据库某个表需要频繁地进行条件查询时,我们可以用到索引。

索引是一种特殊的文件,包含表中所有信息的引用指针,可以对表中的一列或者多列创建索引,能够快速定位和检索数据,提高数据库的性能。

当创建主键约束、唯一约束和外键约束时会自动创建索引。

查看索引:

show index from 表名;

创建索引:

create index 索引名 on 表名(字段名);

 删除索引:

drop index 索引名 on 表名;

8.数据库事务

为了保证两个sql语句要么全部执行成功要么全部执行失败。

开启事务:

start transastion;

rollback:全部失败   commit:全部成功

二、网络体系结构

1.OSI七层模型

应用层:提供网络服务,网络服务与用户的接口。

表示层:数据的表示、安全、压缩,将信息表示为一定形式的数据流。比如:URL加密、口令加密、图片解编码。

会话层:负责通信主机的会话建立和管理。比如服务器验证用户登录。

传输层:负责通信主机间端到端的连接。

网络层:负责将分组从源机送到目的主机,寻找最短最优的路径。

数据链路层:提供可靠的帧传递,提供差错控制。

物理层:比特流传输

每一层都完成特定的功能,并为上一层提供服务,使用下层提供的服务。

2.TCP/IP四层体系结构

应用层:为用户提供所需要的各种服务。

传输层:为应用层实体提供端到端的通信功能。

网络层:解决主机到主机的通信问题。

网络接口层:监视数据在主机与网络之间的交换。

3.OSI和TCP/IP的区别

首先是分层上,可以明显看出,TCP/IP四层模型是OSI七层模型的简化版,但是大致的核心内容是很类似的。虽然OSI跟容易开发和排除故障,但是相较于简洁的TCP/IP,显得庞大而笨拙。十分有趣的是,OSI虽然是官方提出的,但是由于一些原因,在它被完善之前,由民间开发的TCP/IP早已投入实际使用了,所以它几乎是只存在与教科书中,并没有大范围地投入使用。

4.五层协议体系结构

专门为网络原理而设计,与TCP/IP不同的是网络接口层划分为数据链路层和物理层。

5.体系结构总体理解

在OSI的上三层,信息被表示为一定格式和形式的数据流;
数据流被传到传输层,将其切割为适合传输的数据段,并加上段头,段头中包含定位应用进程的端口号等信息;
数据段传到网络层,添加分组头部形成分组,分组头部中包含寻址主机的IP地址和其他一些传输需要用到的信息;
分组再传到数据链路层,添加帧头形成帧,帧头中包含寻址主机所需的物理地址、校验等信息;
帧到了物理层,被转成可供传输的比特流。

 三、网络协议

1.应用层协议

DHCP:动态主机分配协议,使用 UDP 协议工作,自动分配 IP 地址。

FTP:文件传输协议<端口号21>

SMTP:简单邮件传输协议 <端口号25> 用于发送邮件。

SNMP:简单网络管理协议

DNS:域名系统

TELNET:远程登录协议 <端口号23>

TFTP:简单文件传输协议

当然最重要的还是HTTP和HTTPS

TCP常用协议:

UDP常用协议:

 

 2.HTTP与HTTPS

2.1概念

HTTP是超文本传输协议,主要是通过网络与服务器建立连接,该连接是通过 TCP 来完成的,一般 TCP 连接的端口号是80。TCP是可靠的连接传输过程中可以保证传输过程中不会传输错误。

HTTPS是超文本传输安全协议,是以安全为目标的 HTTP 通道,是 HTTP 的安全版。它建立在可靠的传输协议(如TCP)之上,传输过程中采用密文传输,安全性更高。

2.2两者的区别

①最显著的区别是在地址栏中http协议使用的是http://,而https使用的是https://

②http是未加密的协议,在传输过程中容易被攻击者监听、数据容易被窃取、发送方和接收方容易被伪造;而 HTTPS 是安全的协议,它通过 密钥交换算法 - 签名算法 - 对称加密算法 - 摘要算法 能够解决上面这些问题。

③http默认的端口是80,https默认端口为443.

2.3HTTP请求报文

 HTTP请求报文主要有四部分组成:请求行、请求头部、空行、请求体。

请求行主要由请求方法、请求URL、HTTP协议版本组成。

请求方法最主要有两个get和post,后面讲。

请求头部也叫报文头,报文头包含若干个键值对,格式为“属性名:属性值”。

空行的作用是为了分割请求头和请求体。

请求体中保存的是真正的信息,通过param1=value1  param2=value2的键值对形式编码成一个格式化串,它承载多个请求参数的数据。

2.4HTTP的get和post方法

get 方法一般用于请求,比如你在浏览器地址栏输入 www.baidu.com 其实就是发送了一个 get 请求,它的主要特征是请求服务器返回资源,而 post 方法一般用于 <form> 表单的提交,相当于是把信息提交给服务器,等待服务器作出响应。

区别:

①报文上的不同

不带参数时,第一行的方法名不同,一个为get一个为post;

带参数时,get的参数存放在首行的URL中,post的参数存放在body请求体中。

虽然post的参数是在请求首行中不可见,看似post比get更安全,其实两个都不安全,因为都为http明文传输。

②用途

get:获取服务器上的某个资源

post:提交用户的数据给服务器。

③URL的query String不同

get的query String可以为空可以不为空,post的query String一般为空。

④多次请求结果

get多次请求结果相同,post多次请求结果不同。

2.5HTTP常用状态码

200:访问成功

301:永久重定向

302:临时重定向

403:访问拒绝没有权限

404:没有找到资源

405:方法不支持

500:服务器内部错误

504:超时

成功响应(200299)  重定向(300399)  客户端错误(400499)   服务器错误 (500599)

2.6cookie和session

  • 1、数据存储位置:cookie数据存放在客户的浏览器上,session数据放在服务器上。

  • 2、安全性:cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。

  • 3、服务器性能:session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie。

  • 4、数据大小:单个cookie保存的数据不能超过4K,session无限制。

  • 5、信息重要程度:可以考虑将登陆信息等重要信息存放为session,其他信息如果需要保留,可以放在cookie中。

3.传输层协议

传输层中最为常见的两个协议分别是传输控制协议(TCP)和用户数据报协议(UDP)。

3.1TCP

TCP是面向连接的,可靠的进程到进程通信的协议;

TCP提供全双工服务,即数据可在同一时间双向传输;

因为TCP是可靠且是全双工通信,所以在传输数据前,会建立双向数据通信通道,当保证双向数据传输的通道没有问题时,才会发送数据,起到保护数据的作用,这就是著名的“三次握手”。

3.2TCP“三次握手”

Seq序号,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。

Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。

ACK:响应报文

SYN:发起一个新连接。

原理:客户端向服务器发送SYN同步请求,请求与服务器建立连接,服务器收到此SYN同步请求后,会针对客户端的SYN同步请求进行ACK响应的同时也会发送一个SYN同步请求,当客户端收到服务器发过来的SYN同步请求时,会给予一个ACK响应。

为什么握手需要三次?:TCP建立连接时之所以只需要"三次握手",是因为在第二次"握手"过程中,服务器端发送给客户端的TCP报文是以SYN与ACK作为标志位的。SYN是请求连接标志,表示服务器端同意建立连接;ACK是确认报文,表示告诉客户端,服务器端收到了它的请求报文。

3.3TCP“四次挥手”

FIN:释放一个连接。 

原理:  客户端向服务器发送FIN断开请求,服务器接收到此请求后,回复一个ACK。服务器向客户机发送FIN断开请求,客户机收到此请求后,回复一个ACK。

为什么挥手需要四次?:数据传输方向是双向的,一个方向的数据通道关闭需要一次请求和一次确认,因此需要断两次,而我们有两个数据方向,因此需要断四次。

TCP为什么存在半关闭状态?:客户端请求断开时服务器端响应了断开的请求,但可能服务器端还有数据没有传输完,因此服务器并没有向客户机立即发送FIN请求。此时客户端等待数据传输完的过程就是半关闭状态。

3.4UDP

UDP是基于IP的简单协议,不可靠的协议。

UDP的优点:简单,轻量化。

并不是所有使用UDP协议的应用层都是不可靠的,应用程序可以自己实现可靠的数据传输,通过增加确认和重传机制,所以使用UDP 协议最大的特点就是速度快。

3.5UDP与TCP的区别

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

LAKURRAA

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

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

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

打赏作者

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

抵扣说明:

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

余额充值