整理收集一些自己遇到的面试题及部分大家的题,自己来作答,回答不妥或者不全的还请大家指正
络
(一)简单描述下TCP协议
TCP:传输控制协议,是传输层通信协议。它有面向连接、可靠、字节流传输等特点
TCP建立连接时,需要三次握手协议
TCP三次握手的过程如下:
客户端发送SYN 文给服务端,进入SYN_SEND(SEQ=X)状态
服务端收到SYN 文,回应一个SYN(SEQ=Y) ACK(ACK=X+1) 文,进入SYN_RECV状态
客户端收到服务端的SYN 文,回应一个ACK(ACK=Y+1) 文,开始建立连接
TCP/IP作用是什么/strong>
TCP/IP协议是一套 络通信标准,让全世界的各种不同的设备之间可以进行通信
TCP与UDP的区别/strong>
TCP传输控制协议 。UDP用户数据 协议
TCP对资源要求比较多,UDP对资源要求比较少
TCP可以保证数据的正确性,UDP有可能会丢包
TCP可以保证数据的顺序,UDP不会保证
(二) 络7层模型是那7层举一些具体的应用实例
从下到上,物理层、数据链路层、 络层、传输层、会话层、表示层、应用层
物理层:同轴电缆、接收器、发送器等
数据链路层: 卡、交换机、 桥
络层:路由器、 关
传输层:TCP协议、UDP协议
会话层:SQL、ASP、 PHP等
表示层:ASCII、JPEG、PNG、MP3等
应用层:telnet、ssh、http、smtp等
怎么测试 络是否连通
使用ping命令
什么方式可以是外 连接到家里主机
telnet
如何让外 访问家里的终端的原理是什么/strong>
- 电脑上开启远程桌面
- 使用teamview
他们的原理是: - 你和对方机器建立一个Socket连接
- 在本地虚拟一个对方的系统
- 对方系统会在这个Socket连接上实时发送它系统状态的数据
- 收到的数据,是本虚拟系统通过这个数据还原对方系统操作
- 本地操作这个虚拟操作系统,会发送数据命令到对方机器
- 对方继器接收指令,通过Hook(底层钩子)传给操作系统
- 然后循环
访问一个 址会经历哪些流程/strong>
以下几个简单的流程
- 首先需要通过域名找到IP,如果本地缓存没有需要请求DNS服务器
- 得到IP后开始与目的主机进行三次握手来建立TCP连接
- 连接建立后进行HTTP访问,传输病获取 页内容
- 传输完成后与目的主机四次挥手断开TCP连接
Linux
Linux常用命令有哪些,并简述他们的作用
查看当前目录
查看磁盘使用情况
杀掉进程
查看当前主机状态
移动文件
复制文件
查看端口使用状态
删除
查看文件
vim怎么退出
不保存直接退出
保存后退出
强制退出
vim怎么快速查找
按下输入 再输入 +查找内容
如何查找日志关键词上下文
怎样一页一页地查看一个大文件的内容呢/strong>
通过管道命令和more实现
如何查看linux端口 被占用
查看端口状态
如何查看进程状态/strong>
chown是什么rep是什么/strong>
改变文件的拥有者和组
查找文件里符合条件的字符串
如何查看日志/strong>
日志文件名
5个客户端通过TCP连接到主机,如何查看这5个连接
数据库
哪些方法可以提高数据库查询效率/strong>
- 建立索引,利用索引
- 只查询必要的字段
- 合理的处理NULL字段
- 慎用like等通配符
索引设计的时候要注意什么/strong>
- 索引字段长度不能太长
- 索引的个数不能太多
数据库更新语句ROUP BY 如何使用/strong>
GROUP BY 一般常用于对查询结果进行分组
如果一个数据表有成千上万条记录,访问时很慢,有哪些方法可以优化/s>
Redis的优势是什么
- 读写快,Redis是将数据放在内存里,而内存的读取速度比硬盘要快,所以Redis性能优势比其他数据库要好
- 并发性能好
编程
HTTP协议中GET和POST的区别
在http协议中
get方法一般用来从服务器获取数据
post方法一般用来向服务器上传数据
HTTP状态码的含义
状态码 | 描述 |
---|---|
1XX | 服务器收到请求,需要请求者继续执行操作 |
2XX | 成功,操作被成功接收并处理 |
3XX | 重定向,需要进一步的操作以完成请求 |
4XX | 客户端错误,请求包含语法错误或无法完成请求 |
5XX | 服务器错误,服务器在处理请求的过程中发生了错误 |
常用的如下
状态码 | 返回 | 描述 |
---|---|---|
200 | OK | 请求成功。一般用于GET与POST请求 |
400 | Bad Request | 客户端请求的语法错误,服务器无法理解 |
401 | Unauthorized | 未注册或需要用户的身份认证 |
403 | Forbidden | 服务器理解请求客户端的请求,但是拒绝执行此请求 |
404 | Not Found | 服务器无法根据客户端的请求找到资源 |
500 | Internal Server Error | 服务器内部错误,无法完成请求 |
502 | Bad Gateway | 作为 关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应 |
503 | Service Unavailable | 由于超载或系统维护,服务器暂时的无法处理客户端的请求 |
505 | HTTP Version not supported | 服务器不支持请求的HTTP协议的版本,无法完成处理 |
HTTP请求Header里包含哪些内容
浏览器F12随意截取了一段,可以看看
白盒测试方法有哪些
语句覆盖
使程序中的每个可执行语句都能执行一次的测试用例
判定覆盖
对于判断语句,在设计用例的时候,要设计判断语句结果为True和False的两种情况
条件覆盖
设计足够多的测试用例,使得程序中每个判定包含的每个条件的可能取值(真/假)都至少满足一次
判定条件覆盖
设计足够的测试用例,使得判断条件中的所有条件可能取值至少执行一次,同时,所有判断的可能结果至少执行一次
条件组合覆盖
设计足够的测试用例,使得程序中每个判断的所有可能的条件取值组合都至少出现一次
路径覆盖
设计所有的测试用例,来覆盖程序中的所有可能的执行路径
白盒测试覆盖率如何保证

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!