此文作为面试题目记录,其中会有一些自己遇到过的和在网上看到的比较具有代表性的面试题,其中如果在前面文章中已经写过的就会比较简略,持续更新,没有顺序。
1、python中的浅拷贝与深拷贝,变量及其引用(python基础)
参https://blog.csdn.net/weixin_44806420/article/details/96456447
python中的赋值变量全部都是引用。
2、数据库的查询性能优化
①建立索引;
②优化SQL语句;
③数据库读写分离与主从负载均衡减轻压力;
④数据库分库与分表;
⑤数据库表设计时的空间换时间;
⑥利用缓存。
3、HTTP 1.0/1.1/2.0的区别
HTTP 1.0最早于1996年应用,主要用于处理一些简单的网页和请求,HTTP 1.1最早于1999年应用,也是当今应用最广泛的HTTP协议。
与HTTP 1.0相比,HTTP 1.1做了以下优化:
①添加支持了更多的缓存处理机制;
②允许控制只请求传输需要的某个部分,即206(Partial Content),有利于控制传输大小和带宽管理;
③新增了许多错误状态响应码,如409(Conflict);
④新增了host头域,这是由于虚拟主机技术的产生,使一台物理主机上可以有多台服务器,其共享相同的IP地址;
⑤支持长连接,在HTTP 1.1中默认开启长连接,即Connection: keep-alive。
HTTPS与HTTP区别:
①HTTPS协议需要到CA申请证书,一般免费证书很少,需要交费;
②HTTP协议运行在TCP之上,所有传输的内容都是明文,HTTPS运行在SSL/TLS之上,SSL/TLS运行在TCP之上(即多了SSL/TLS步骤),所有传输的内容都经过加密的;
注:SSL(Secure Sockets Layer)及其继任者TLS(Transport Layer Security)在传输层对网络连接进行加密。
③HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443;
④HTTPS可以有效的防止运营商劫持,解决了防劫持的一个大问题。
SPDY是google在2012年提出的优化HTTP 1.1的方案,其优化如下:
①优化长连接:采用多路复用的方式,使一个TCP连接可以处理多个请求流,降低了延迟,并且允许对请求设置优先级;
②header压缩:双方传输过程中,每次请求的请求头(或响应的响应头)有很大一部分是相同的,通过合适的算法减少了这部分的消耗;
③基于HTTPS加密;
④服务端推送:将需要的静态资源直接推送到客户端电脑上,从本地读取文件当然比每次都发送请求从服务器获取要快捷的多。
SPDY工作于SSL/TLS与HTTP协议之间,可兼容HTTP1.0。
HTTP2.0基本上就是SPDY的升级版,其与SPDY的不同点在于:
HTTP2.0仍然支持使用TCP明文传输,SPDY强制使用HTTPS,且其header文件的压缩算法不同。
HTTP2.0相较于HTTP1.1的优化与改进: