整理收集一些自己遇到的面试题及部分大家的题,自己来作答,回答不妥或者不全的还请大家指正
(一)简单描述下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作用是什么?
TCP/IP协议是一套网络通信标准,让全世界的各种不同的设备之间可以进行通信
TCP与UDP的区别?
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
如何让外网访问家里的终端?它的原理是什么?
访问一个网址会经历哪些流程?
以下几个简单的流程
Linux常用命令有哪些,并简述他们的作用
ls
查看当前目录
df-h
查看磁盘使用情况
kill
杀掉进程
top
查看当前主机状态
mv
移动文件
cp
复制文件
netstat-a
查看端口使用状态
rm
删除
cat
查看文件
vim怎么退出
q
不保存直接退出
wq
保存后退出
q!
强制退出
vim怎么快速查找
按下ESC
输入:
再输入:
空格
+查找内容
怎样一页一页地查看一个大文件的内容呢?
cat filename.txt | more
通过管道命令和more实现
如何查看linux端口号被占用
netstat -a
查看端口状态
如何查看进程状态?
ps -ef | grep 进程名
chown是什么?grep是什么?
chown
改变文件的拥有者和组
gerp
查找文件里符合条件的字符串
如何查看日志?
tail -f
日志文件名
5个客户端通过TCP连接到主机,如何查看这5个连接
netstat -nat|grep ESTABLISHED
哪些方法可以提高数据库查询效率?
索引设计的时候要注意什么?
数据库更新语句?GROUP BY 如何使用?
UPDATE TABLENAME SET 字段名称 = 新值 WHERE 列名称 = 旧值
GROUP BY 一般常用于对查询结果进行分组
# 如果想要对结果进行分组统计,加上SUM函数即可
SELECT SUM(列名1) 列命2 FROM TABLENAME
WHERE 列名1 列名2
GROUP BY 列命1
如果一个数据表有成千上万条记录,访问时很慢,有哪些方法可以优化?
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随意截取了一段,可以看看
# 主机名
Host: cn.bing.com
# 你当前访问的方式,一般为浏览器版本,或者APP
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate, br
# HTTP请求应答模式,KeepAlive模式,也有非KeepAlive模式
Connection: keep-alive
# 本地缓存
Cookie: SNRHOP=I=&TS=; _EDGE_S=mkt=zh-cn&F=1&SID=0227DE6146F26D360001D09247DC6CAA; _EDGE_V=1; MUID=0791871266626F2726E289E1674C6E73; _SS=PC=MOZI&SID=0227DE6146F26D360001D09247DC6CAA; SRCHS=PC=MOZI; SRCHD=AF=MOZLBR; SRCHUID=V=2&GUID=552BA37B5F5640E0BFCB0985B1F1AF85&dmnchg=1; SRCHUSR=DOB=20200624&T=1592977196000; MUIDB=0791871266626F2726E289E1674C6E73; SRCHHPGUSR=HV=1592977466&WTS=63728573996&CW=1920&CH=432&DPR=1&UTC=480&DM=0; ipv6=hit=1592980798172&t=6
# 是对应服务器的响应头部信息,Content-Security-Policy: upgrade-insecure-requests
Content-Security-Policy: upgrade-insecure-requests
# 1,表示只是客户端支持
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
Python里如何反转字符
str = "reversal"
print(str[::-1])
str1 = "reversal"
print(''.join(reversed(str1)))