(13/100)

学习思路如下:

面试准备思路

五、XML—题目

1、XML基础
1、XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?

2、Web Service
1、WEB SERVICE名词解释,JSWDL开发包的介绍,JAXP、JAXM的解释。SOAP、UDDI,WSDL解释。
2、请你谈谈对SOAP、WSDL、UDDI的了解?
3、谈谈Java规范中和Web Service相关的规范有哪些?

六、计算机网络—题目

1、网络概述
1、TCP协议在哪一层?IP协议在那一层?HTTP在哪一层?

2、运输层
1、讲一下TCP的连接和释放连接。
2、TCP有哪些应用场景
3、tcp为什么可靠
4、tcp为什么要建立连接
5、阐述TCP的4次挥手
6、讲一下浏览器从接收到一个URL到最后展示出页面,经历了哪些过程。tag
7、http和https的区别
8、http的请求有哪些,应答码502和504有什么区别
9、http1.1和1.0的区别
10、说说ssl四次握手的过程
11、304状态码有什么含义?

3、网络层
1、arp协议,arp攻击
2、icmp协议
3、讲一下路由器和交换机的区别?

4、应用层
1、DNS寻址过程
2、负载均衡反向代理模式优点及缺点

七、操作系统—题目

1、操作系统概论
1、CentOS 和 Linux的关系?
2、64位和32位的区别?

2、进程的描述与控制
1、怎么杀死进程?
2、线程,进程区别
3、系统线程数量上限是多少?
4、进程和线程的区别是什么?
5、解释一下LINUX下线程,GDI类。

3、输入输出系统
1、socket编程,BIO,NIO,epoll?

4、存储器管理
1、什么是页式存储?
2、操作系统里的内存碎片你怎么理解,有什么解决办法?

5、处理机调度与死锁
1、什么情况下会发生死锁,解决策略有哪些?
2、系统CPU比较高是什么原因?
3、系统如何提高并发性?


五、XML—题目

答案部分:1)XML基础

1、XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?

答:XML文档定义方式:有两种定义形式,dtd文档类型定义和schema模式。
本质区别:schema本身是xml的,可以被XML解析器解析(这也是从DTD上发展schema的根本目的)

  • 普通区别:
    1)schema 是内容开放模型,可扩展,功能性强,而DTD可扩展性差。
    2)shema 支持丰富的数据类型,而 DTD不支持元素的数据类型,对属性的类型定义也很有限。
    3)schema 支持命名空间机制,而DTD不支持。
    4)schema 可针对不同情况对整个XML 文档或文档局部进行验证;而 DTD缺乏这种灵活性。
    5)schema 完全遵循XML规范,符合XML语法,可以和DOM结合使用,功能强大;DTD 语法本身有自身的语法和要求,难以学习。
  • 解析XML文档方式:
    1)DOM解析: DOM的全称是Document Object Model,也即文档对象模型。在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树),应用程序正是通过对这个对象模型的操作,来实现对XML文档数据的操作。通过DOM接口,应用程序可以在任何时候访问XML文档中的任何一部分数据,因此,这种利用DOM接口的机制也被称作随机访问机制。

    2)SAX解析: SAX的全称是Simple APIs for XML,也即XML简单应用程序接口。与DOM不同,SAX提供的访问模式是一种顺序模式,这是一种快速读写XML数据的方式。当使用SAX分析器对XML文档进行分析时,会触发一系列事件,并激活相应的事件处理函数,应用程序通过这些事件处理函数实现对XML文档的访问,因而SAX接口也被称作事件驱动接口。

    3)JDOM解析: JDOM采用了Java中的Collection架构来封装集合,是Java爱好者更加熟悉的模式

    4)DOM4J解析: xml解析器一次性把整个xml文档加载进内存,然后在内存中构建一颗Document的对象树,通过Document对象,得到树上的节点对象,通过节点对象访问(操作)到xml文档的内容

答案部分:2)Web Service

1、WEB SERVICE名词解释,JSWDL开发包的介绍,JAXP、JAXM的解释。SOAP、UDDI,WSDL解释。

答:

  • Web ServiceWeb Service: 是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得Web Service能与其他兼容的组件进行互操作。
  • JAXP(Java API for XML Parsing): 定义了在Java中使用DOM, SAX, XSLT的通用的接口。这样在你的程序中你只要使用这些通用的接口,当你需要改变具体的实现时候也不需要修改代码。
  • JAXM(Java API for XML Messaging): 是为SOAP通信提供访问方法和传输机制的API。
  • SOAP: 即简单对象访问协议(Simple Object Access Protocol),它是用于交换XML编码信息的轻量级协议。
  • UDDI: 的目的是为电子商务建立标准;UDDI是一套基于Web的、分布式的、为Web Service提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业能够发现的访问协议的实现标准。
  • WSDL: 是一种 XML 格式,用于将网络服务描述为一组端点,这些端点对包含面向文档信息或面向过程信息的消息进行操作。这种格式首先对操作和消息进行抽象描述,然后将其绑定到具体的网络协议和消息格式上以定义端点。相关的具体端点即组合成为抽象端点(服务)。

2、请你谈谈对SOAP、WSDL、UDDI的了解?

答:

  • 1)SOAP 即 Simple Object AccessProtocol 也就是简单对象访问协议。 SOAP 是用于在应用程序之间进行通信的一种通信协议。SOAP 基于XML 和 HTTP ,其通过XML 来实现消息描述,然后再通过 HTTP 实现消息传输。 SOAP 协议的一个重要特点是它独立于底层传输机制,Web 服务应用程序可以根据需要选择自己的数据传输协议, 可以在发送消息时来确定相应传输机制。
  • 2)WSDL 即 Web Services Description Language也就是 Web 服务描述语言。 服务提供者通过服务描述将所有用于访问 Web服务的规范传送给服务请求者,通过服务描述便可以不必了解对方的底层平台,编程语言等。(服务所提供的操作、如何访问服务、服务位于何处)
  • 3)UDDI 即 Universal Description,Discovery and Integration,也就是通用的描述,发现以及整合。 WSDL 呢,用来描述了访问特定的 Web 服务的一些相关的信息,可以在互联网上,或者是在企业的不同部门之间。 UDDI的话,是一个跨产业,跨平台的开放性架构,可以帮助 Web 服务提供商在互联网上发布 Web 服务的信息。 UDDI 呢是一种目录服务,企业可以通过 UDDI 来注册和搜索 Web 服务。 简单来时候话,UDDI 就是一个目录,只不过在这个目录中存放的是一些关于 Web 服务的信息而已。

3、谈谈Java规范中和Web Service相关的规范有哪些?

答:JAVA同拥有三种WebService 规范,各自是JAXM&SAAJ、JAX-WS(JAX-RPC)、JAX-RS。

  • 1)JAX-WS(JSR 224): 这个规范是早期的基于SOAP的Web Service规范JAX-RPC的替代版本,它并不提供向下兼容性,因为RPC样式的WSDL以及相关的API已经在Java EE5中被移除了。WS-MetaData是JAX-WS的依赖规范,提供了基于注解配置Web Service和SOAP消息的相关API。
  • 2)JAXM(JSR 67): 定义了发送和接收消息所需的API,相当于Web Service的服务器端。
  • 3)JAX-RS(JSR 311 & JSR 339 & JSR 370): 是Java针对REST(Representation State Transfer)架构风格制定的一套Web Service规范。REST是一种软件架构模式,是一种风格,它不像SOAP那样本身承载着一种消息协议, (两种风格的Web Service均采用了HTTP做传输协议,因为HTTP协议能穿越防火墙,Java的远程方法调用(RMI)等是重量级协议,通常不能穿越防火墙),因此可以将REST视为基于HTTP协议的软件架构。REST中最重要的两个概念是资源定位和资源操作,而HTTP协议恰好完整的提供了这两个点。HTTP协议中的URI可以完成资源定位,而GET、POST、OPTION、DELETE方法可以完成资源操作。因此REST完全依赖HTTP协议就可以完成Web Service,而不像SOAP协议那样只利用了HTTP的传输特性,定位和操作都是由SOAP协议自身完成的,也正是由于SOAP消息的存在使得基于SOAP的Web Service显得笨重而逐渐被淘汰。


六、计算机网络—题目

答案部分:1)网络概述

1、TCP协议在哪一层?IP协议在那一层?HTTP在哪一层?

答:从上到下依次是HTTP(应用层)、TCP(传输层)、IP(网络层)。

  • OSI的7层从上到下分别是:
    7)应用层(TELNET,HTTP,FTP,NFS,SMTP)
    6)表示层
    5)会话层
    4)传输层(TCP,UDP)
    3)网络层(IP)
    2)数据链路层
    1)物理层


答案部分:2)运输层

1、讲一下TCP的连接和释放连接。

答:三次握手建立链接,四次挥手释放链接。参考—https://blog.csdn.net/qq_42196196/article/details/81042376

  • 三次握手建立链接:
    三次握手
  • 1)第一次握手:客户端将同步号SYN置为1,随机产生一个值seq=x,将该数据包发送给服务端,客户端进入SYN_SENT状态,等待服务端确认。
  • 2)第二次握手:服务端收到数据包后由同步号SYN=1知道客户端请求建立连接,服务端将标志位SYN和ACK都置为1,ack=x+1,随机产生一个值seq=y,并将该数据包发送给客户端以确认连接请求,服务端进入SYN_RCVD状态。
  • 3)第三次握手:客户端收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给服务端,服务端检查ack是否为y+1,ACK是否为1,如果正确则连接建立成功,客户端和服务端进入ESTABLISHED状态.
  • 完成三次握手,成功建立链接,进行数据传输。


  • 四次挥手释放链接:
    四次握手
  • 1)第一次挥手:客户端发送FIN=1,用来关闭客户端到服务端的数据传送,随机产生一个seq=u,将该数据包发送给服务端,客户端进入FIN_WAIT_1状态。
  • 2)第二次挥手:服务端收到结束标志FIN=1后,发送确认标志ACK=1给客户端,确认号ack=u+1,随机产生一个seq=v,将该数据包发送给客户端,服务端进入CLOSE_WAIT状态。
  • 3)第三次挥手:服务端发送结束标志FIN=1,用来关闭服务端到客户端的数据传送,并发送确认标志ACK=1,随机产生一个seq=w,ack=u+1,将该数据包发送给客户端,服务端进入LAST_ACK状态。
  • 4)第四次挥手:客户端收到FIN后,客户端进入TIME_WAIT状态,接着发送确认标志ACK=1给服务端,确认号seq=u+1,服务端进入CLOSED状态。
  • 完成四次挥手,成功断开连接。



2、TCP有哪些应用场景。

答:tcp协议是面向连接的,可靠的数据传输协议,但是它的传输数据速率相比于udp协议比较慢。
它适用于对数据传输可靠性要求比较高的场景,例如文本传输之类的。

  • 应用场景: 互联网和企业网上客户端应用,数据传输性能让位于数据传输的完整性,可控制性和可靠性。

3、tcp为什么可靠?

答:确认机制和重传机制。参考—https://www.jianshu.com/p/ff36b6ab503e
1)ACK机制:
由于通信过程的不可靠性,传输的数据不可避免的会出现丢失、延迟、错误、重复等各种状况,TCP协议为解决这些问题设计了些机制。
这个机制的核心,就是发送方向接收方发送数据后,接收方要向发送方发送ACK(回执)。如果发送方没接收到正确的ACK,就会重新发送数据直到接收到ACK为止。
比如: 发送方发送的数据序号是seq,那么接收方会发送seq + 1作为ACK,这样发送方就知道接下来要发送序号为seq + 1的数据过去。
确认机制
ACK机制工作原理:

  • 1)数据丢失或延迟。 发送方发送数据seq时会起一个定时器,如果在指定时间内没有接收到ACK seq + 1,就把数据seq再发一次。
  • 2)数据乱序。 接收方上一个收到的正确数据是seq + 4,它返回seq + 5作为ACK。这时候它收到了seq + 7,因为顺序错了,所以接收方会再次返回seq + 5给发送方。
  • 3)数据错误。 每一个TCP数据都会带着数据的校验和。接收方收到数据seq + 3以后会先对校验和进行验证。如果结果不对,则发送ACK seq + 3,让发送方重新发送数据。
  • 4)数据重复。 接收方直接丢弃重复的数据即可。

2)重传机制:
客户端一次给服务器发送多个数据包,当服务器收到客户端的数据包时,不马上发送ACK,而是稍微等一小段时间。在这个过程中服务器可能能收到后续几个数据包,服务器就可以直接按照最后一个正确的数据发送ACK,减少发送ACK的总数。
重传机制

4、tcp为什么要建立连接?

答:TCP是提供可靠性连接的,只有支持端到端的连接,才能进行可靠性传输,连接的主要功能在于记录两个端口间的通信状态,不连接则无法记录两个端口通信的状态,则无法知道丢失了哪个数据包,重复收到了哪个数据包,也无法确保数据包之间的到达顺序,还有很多增加可靠性的功能都无法应用。

5、阐述TCP的4次挥手?

答:

  • 四次挥手释放链接:
    四次握手
  • 1)第一次挥手: 客户端发送FIN=1,用来关闭客户端到服务端的数据传送,随机产生一个seq=u,将该数据包发送给服务端,客户端进入FIN_WAIT_1状态。
  • 2)第二次挥手: 服务端收到结束标志FIN=1后,发送确认标志ACK=1给客户端,确认号ack=u+1,随机产生一个seq=v,将该数据包发送给客户端,服务端进入CLOSE_WAIT状态。
  • 3)第三次挥手: 服务端发送结束标志FIN=1,用来关闭服务端到客户端的数据传送,并发送确认标志ACK=1,随机产生一个seq=w,ack=u+1,将该数据包发送给客户端,服务端进入LAST_ACK状态。
  • 4)第四次挥手: 客户端收到FIN后,客户端进入TIME_WAIT状态,接着发送确认标志ACK=1给服务端,确认号seq=u+1,服务端进入CLOSED状态。
  • 完成四次挥手,成功断开连接。

6、讲一下浏览器从接收到一个URL到最后展示出页面,经历了哪些过程。tag

答:
当我们要访问某个网站的时候:我们在浏览器中输入网址的地址,这个时候浏览器会找到对应的DNS服务器,解析出IP地址,拿到IP地址后浏览器开始发送报文,对应的IP地址的服务器开始响应报文,以及把请求的资源发送给浏览器,浏览器在接受相应的资源后便会开始解析,常见的便是HTML,CSS,JavaScript

7、http和https的区别?

答:HTTP是超文本传输协议,信息是明文传输,HTTPS则是具有安全性的SSL加密传输协议;
HTTP和HTTPS使用的是完全不同的连接方式,使用的端口也不一样,http是80,https是443,http是无状态的连接,https是SSL+HTTP协议构建的可进行加密传输,比HTTP协议安全。

8、http的请求有哪些,应答码502和504有什么区别?

答:

  • http的请求方式:
    1)Opions 返回服务器针对特定资源所支持的HTML请求方法或web服务器发送测试服务器功能(允许客户端查看服务器性能)。
    2)Get 向特定资源发出请求(请求指定页面信息,并返回实体主体)。
    3)Post 向指定资源提交数据进行处理请求(提交表单、上传文件),有可能导致新的资源的建立或原有资源的修改。
    4)Put 向指定资源位置上上传其最新内容(从客户端向服务器传送的数据取代指定文档的内容)。
    5)Head 与服务器索与get请求一致的相应,响应体不会返回,获取包含在小消息头中的原信息
    (与get请求类似,返回的响应中没有具体内容,用于获取报头)。
    6)Delete 请求服务器删除request-URL所标示的资源(请求服务器删除页面)。
    7)Trace 回显服务器收到的请求,用于测试和诊断。
    8)Connect HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

502: 表示错误网关,无效网关 。
504: 表示网关超时,说明服务器作为网关或代理,但是没有及时从上游服务器收到请求。

9、http1.1和1.0的区别?

答:
概念: HTTP1.0最早在网页中使用是在1996年,那个时候只是使用一些较为简单的网页上和网络请求上,而HTTP1.1则在1999年才开始广泛应用于现在的各大浏览器网络请求中,同时HTTP1.1也是当前使用最为广泛的HTTP协议。

  • 主要区别:
  • 1)长连接: 在HTTP/1.0中,默认使用的是短连接,也就是说每次请求都要重新建立一次连接。
    HTTP 是基于TCP/IP协议的,每一次建立或者断开连接都需要三次握手四次挥手的开销,如果每次请求都要这样的话,开销会比较大。因此最好能维持一个长连接,可以用个长连接来发多个请求。HTTP 1.1起,默认使用长连接 ,默认开启Connection: keep-alive。 HTTP/1.1的持续连接有非流水线方式和流水线方式 。流水线方式是客户在收到HTTP的响应报文之前就能接着发送新的请求报文。与之相对应的非流水线方式是客户在收到前一个响应后才能发送下一个请求。
  • 2)错误状态响应码: 在HTTP1.1中新增了24个错误状态响应码,如409(Conflict)表示请求的资源与资源的当前状态发生冲突;410(Gone)表示服务器上的某个资源被永久性的删除。
  • 3)缓存处理: 在HTTP1.0中主要使用header里的If-Modified-Since,Expires来做为缓存判断的标准,HTTP1.1则引入了更多的缓存控制策略例如Entity tag,If-Unmodified-Since, If-Match, If-None-Match等更多可供选择的缓存头来控制缓存策略。
  • 4)带宽优化及网络连接的使用: HTTP1.0中,存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了,并且不支持断点续传功能,HTTP1.1则在请求头引入了range头域,它允许只请求资源的某个部分,即返回码是206(Partial Content),这样就方便了开发者自由的选择以便于充分利用带宽和连接。

10、说说ssl四次握手的过程

答:
1) 客户端向服务器发送加密通信的请求,请求包括:协议版本,客户端随机数,加密方法,压缩方式;

2) 服务器确认支持协议版本,如果不支持则关闭加密通道;确认加密方式(从算法列表中选取响应的算法),生成随机数;返回服务器证书

3) 客户端做出响应:客户端确认证书是否合法,如果合法,生成随机数并是使用公钥进行加密;使用约定的加密方式对握手信息进行加密,并使用随机数对消息进行加密,最后将所有的信息发送给服务器。

4) 服务器使用自己的私钥对信息解密取出密码,使用密码对握手信息进行解密,同时利用client random、server random和premater secret通过一定算法生成对称加密key - session key。

11、304状态码有什么含义?

答:304状态码是告诉浏览器可以从缓存中获取所请求的资源。

当浏览器请求某一文件时,发现自己缓存的文件有Last-Modified,就会在httpRequest里面添加消息头If-Modified-Since 和If-Non-Match,服务器在收到reqeust时,和服务器本地文件对比,如果没有更新,则仅仅返回一个响应头Head(状态码304,而没有响应体),客户端在收到这个响应时,就会从本地缓存加载请求的资源。


答案部分:3)网络层

1、arp协议,arp攻击

答:
ARP(Address Resolution Protocol,地址解析协议)是一个位于TCP/IP协议栈中的网络层,负责将某个IP地址解析成对应的MAC地址。

  • ARP协议存在很多漏洞和不足,给计算机网络造成很大的隐患:
  • 1) 首先,ARP协议是以广播方式发送ARP请求的,只要是同一个网段内主机都可以收到,这就为攻击者以可乘之机,攻击者可以发送大量的ARP请求包,阻塞正常网络宽带,使局域网中有限的网络资源被无用的广播信息所占用,造成网络拥堵
  • 2) 其次,ARP协议没有安全认证机制,因为局域网内主机是建立在信任的基础上的,所以只要主机接收到ARP应答包,都会缓存在ARP表中,这就为ARP欺骗提供了可能。攻击者可以发送错误的IP地址MAC地址的映射关系

2、icmp协议

答:ICMP协议(Internet Control Message Protocol 网际控制报文协议)是ip层协议。

  • 作用:参考—https://blog.csdn.net/qq_38623623/article/details/81229438
  • 提供主机或者路由器差错报告和异常情况报告,我们经常使用的ping命令就是一种icmp报文,它用来探测两台主机之间的连通性。
  • ICMP协议的作用: ICMP协议是IP协议的一个辅助,它可以传递差错报文以及其他信息。Ping用到的是ICMP协议,不是端口。
  • ICMP协议:
    ICMP经常被认为是IP层的一个组成部分,它传递差错报文以及其他需要注意的信息。ICMP协议经常被IP层或者更高层协议使用,比如TCP、UDP。ICMP报文有两种类型:差错报告报文和查询报文。
    ICMP协议

3、讲一下路由器和交换机的区别?

答:
1)路由器: 工作在网络层,路由器知道转发的目的IP地址,路由器将数据包分组转发到不同网段上
2)交换机: 工作在链路层,交换机只知道转发的物理地址,交换机将数据帧转发到同一网段。

  • 区别:
  • 1)路由器可以给局域网自动分配IP,虚拟拨号;交换机只是用来分配网络数据的。
  • 2)路由器在网络层,根据IP地址寻址,可以处理TCP/IP协议;交换机在数据链路层,根据MAC地址寻址,不能处理TCP/IP协议。
  • 3)路由器可以把一个IP分配给多个主机使用,主机对外只表现出一个IP;交换机可以把很多主机连接起来,主机对外各有各的IP。
  • 4)路由器提供防火墙服务。路由器用来做网间连接,也就是用来连接不同的网络;交换机不提供防火墙服务。交换机用来做端口扩展,扩大局域网的接入点,也就是能让局域网可以接进来更多的电脑。
  • 5)路由器是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径、按前后顺序发送信号;交换机是互联网的枢纽(“交通警察”)。


答案部分:4)应用层

1、DNS寻址过程

答:
1)客户机发出查询请求,在本地计算机缓存查找,若没有找到,就会将请求发送给dns服务器
2)先发送给本地dns服务器,本地就会在自己的区域里面查找,若找到,根据此记录进行解析,若没有找到,就会在本地的缓存里面查找
3)本地服务器没有找到客户机查询的信息,就会将此请求发送到根域名dns服务器
4)根域名服务器解析客户机请求的根域部分,它把包含的下一级的dns服务器的地址返回到客户机的dns服务器地址
5)客户机的dns服务器根据返回的信息接着访问下一级的dns服务器
6)这样递归的方法一级一级接近查询的目标,最后在有目标域名的服务器上面得到相应的IP信息
7)客户机的本地的dns服务器会将查询结果返回给我们的客户机
8)客户机根据得到的ip信息访问目标主机,完成解析过程

2、负载均衡反向代理模式优点及缺点

答:

  • 负载均衡:
    1)负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。
    2)通过某种负载分担技术,将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。均衡负载能够平均分配客户请求到服务器列阵,籍此提供快速获取重要数据,解决大量并发访问服务问题。
    总结: 负载均衡是用来解决高并发、海量处理、容错处理以及服务器等等一系列问题!

  • 反向代理与负载均衡的区别:
    1)反向代理是实现负载均衡的一种方式
    2)反向代理可以实现负载均衡 但是负载均衡不一定通过反向代理的方式来实现
    3)反向代理也可以不做负载均衡 可以做客户端与web服务器之间的缓存服务器

  • 1.什么是正向代理?
    答:正向代理是针对客户端而言的。客户端想访问一个网站,但上不了网,可是客户端却能访问一个叫做代理服务器的东西,代理服务器可以帮助客户端上网。客户端先将请求发给代理服务器,代理服务器再将请求转发给网站,网站的响应结果先发给代理服务器,然后再由代理服务器转发给客户端。
    简单来说,正向代理就是指代理服务器帮助客户端上网。

  • 2.什么是反向代理?
    答:传统代理服务器位于浏览器一侧,代理浏览器将HTTP请求发送到互联网上,而反向代理服务器位于网站机房一侧,代理网站Web服务器接收HTTP请求。和传统代理服务器可以保护浏览器安全一样,反向代理服务器也具有保护网站安全的作用,来自互联网的访问请求必须经过代理服务器,相当于在Web服务器和可能的网络攻击之间建立了一个屏障。

    除了安全功能,代理服务器也可以通过配置缓存功能加速Web请求。当用户第一次访问静态内容的时候,静态内容就被缓存在反向代理服务器上,这样当其他用户访问该静态内容的时候,就可以直接从反向代理服务器返回,加速Web请求响应速度,减轻Web服务器负载压力。事实上,有些网站会把动态内容也缓存在代理服务器上,比如维基百科及某些博客论坛网站,把热门词条、帖子、博客缓存在代理服务器上加速用户访问速度,当这些动态内容有变化时,通过内部通知机制通知反向代理缓存失效,反向代理会重新加载最新的动态内容再次缓存起来。
    反向代理也可以实现负载均衡的功能,通过负载均衡构建的应用集群来提高系统总体处理能力,进而改善网站高并发情况下的性能。


七、操作系统—题目

答案部分:1)操作系统概论

1、CentOS 和 Linux的关系?

答:操作系统主要分3个部分,分别是:内核、库、应用程序。
1)内核主要管理与硬件的直接交互的原语代码就类似dao层的一个方法,是原子性的;
2)是对内核的进一步封装,当一个功能需要多个原语时,就比如有的程序,需要键盘的输入,还需要显示器的显示,就可以调用库中的封装好的方法;
3)应用程序是系统级的应用程序,直接调用库中的方法。

总结: Linux从开发出来就只是内核部分,但为开发源码,centos厂家就自己写库和应用程序部分,衍生出各种版本,此外还有redhat等。

2、64位和32位的区别?

答:
1)运行能力不同。 64位一次处理8个字节的数据量,而32位一次只可以处理4个字节的数据量,64位比32位的运行能力提高了一倍。
2)内存寻址不同。 64位最大寻址空间为2的64次方,理论值直接达到了16TB,而32位的最大寻址空间为2的32次方,为4GB,换而言之,就是说32位系统的处理器最大只支持到4G内存,而64位系统最大支持的内存高达亿位数。
3)运行软件不同。 由于32位和64位CPU的指令集是不同的。所以需要区分32位和64位版本的软件。


答案部分:2)进程的描述与控制

1、怎么杀死进程?

答:参考—https://www.cnblogs.com/fatt/p/5050866.html

  • 具体操作:
    1)把ps的查询结果通过管道给grep查找包含特定字符串的进程。
    2)管道符“|”用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。
    eg:
    (1)$ ps -ef | grep firefox
    smx 1827 1 4 11:38 ? 00:27:33 /usr/lib/firefox-3.6.18/firefox-bin
    smx 12029 1824 0 21:54 pts/0 00:00:00 grep --color=auto firefox
    然后:
    (2)$kill -s 9 1827

2、线程,进程区别?

答:

  • 定义:
    1)进程是资源(CPU、内存等)分配的基本单位,它是程序执行时的一个实例。程序运行时系统就会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列,进程调度器选中它的时候就会为它分配CPU时间,程序开始真正运行。

    2)线程是程序执行时的最小单位,它是进程的一个执行流,是CPU调度和分派的基本单位,一个进程可以由很多个线程组成,线程间共享进程的所有资源,每个线程有自己的堆栈和局部变量。线程由CPU独立调度执行,在多CPU环境下就允许多个线程同时运行。同样多线程也可以实现并发操作,每个请求分配一个线程来处理。

  • 区别和优劣:
    1) 进程是资源分配的最小单位;线程是程序执行的最小单位。

    2) 进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段,这种操作非常昂贵;而线程是共享进程中的数据的,使用相同的地址空间,因此CPU切换一个线程的花费远比进程要小很多,同时创建一个线程的开销也比进程要小很多。

    3) 线程之间的通信更方便,同一进程下的线程共享全局变量、静态变量等数据;而进程之间的通信需要以通信的方式(IPC)进行。不过如何处理好同步与互斥是编写多线程程序的难点。

    4) 但是多进程程序更健壮,多线程程序只要有一个线程死掉,整个进程也死掉了;而一个进程死掉并不会对另外一个进程造成影响,因为进程有自己独立的地址空间。

3、系统线程数量上限是多少?

答:64位最大寻址空间为2的64次方,理论值直接达到了16TB,而32位的最大寻址空间为2的32次方,为4GB,换而言之,就是说32位系统的处理器最大只支持到4G内存,而64位系统最大支持的内存高达亿位数。

1)对于32位的linux系统,一个进程的地址空间是4GB,其中用户态能访问3GB左右,一个线程的默认栈是10M,心算可知一个进程能同时开启300个线程,因此300左右是上限,因为进程其他部分也同样需要,数据段代码段堆动态库。
2)对于64位的linux系统,同理更多。

4、进程和线程的区别是什么?

答:

  • 区别和优劣:
    1) 进程是资源分配的最小单位;线程是程序执行的最小单位。

    2) 进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段,这种操作非常昂贵;而线程是共享进程中的数据的,使用相同的地址空间,因此CPU切换一个线程的花费远比进程要小很多,同时创建一个线程的开销也比进程要小很多。

    3) 线程之间的通信更方便,同一进程下的线程共享全局变量、静态变量等数据;而进程之间的通信需要以通信的方式(IPC)进行。不过如何处理好同步与互斥是编写多线程程序的难点。

    4) 但是多进程程序更健壮,多线程程序只要有一个线程死掉,整个进程也死掉了;而一个进程死掉并不会对另外一个进程造成影响,因为进程有自己独立的地址空间。

5、解释一下LINUX下线程,GDI类。

答:

  • LINUX是基于核心轻量级进程的"一对一"线程模型,一个线程实体对应一个核心轻量级进程,而线程之间的管理在核外函数库中实现。
  • GDI类为图像设备编程接口类库。


答案部分:3)输入输出系统

1、socket编程,BIO,NIO,epoll?

答:BIO是同步阻塞IO,NIO是同步非阻塞IO,AIO(epoll)是异步非阻塞IO;

  • 三种IO方式比较:
  • 1)BIO是一个客户端对应一个线程,优化的话可以用线程池进行线程复用,但本质还是一个客户端-服务端通信对应一个线程;
  • 2)NIO只需要一个线程负责多路复用器selector的轮询,就可以处理不同客户端channel中的读/写事件,所以多个客户端实际只对应一个线程,另外服务器端和客户端均使用缓冲区的方式进行读写;
  • 3)AIO不需要过多的多路服务器selector即可实现异步读写,可以理解为简化版的NIO;


答案部分:4)存储器管理

1、什么是页式存储?

答:页式存储是指存储的时候以页面作为基本的存储单位。

  • 定义: 把内存物理空间和程序逻辑空间分成大小相等的块,逻辑空间中的块称为页面,物理空间中的块称为物理块。

    一个大的作业分存在N个页里,当执行作业的时候不需要同事加载所有的页,而是用到哪些加载哪些,页式存储让资源的效率更高。

2、操作系统里的内存碎片你怎么理解,有什么解决办法?

答:内存碎片通常分为内部碎片和外部碎片。

  • 1)内部碎片是由于采用固定大小的内存分区,当一个进程不能完全使用分给它的固定内存区域时就会产生内部碎片,通常内部碎片难以完全避免;
  • 2)外部碎片是由于某些未分配的连续内存区域太小,以至于不能满足任意进程的内存分配请求,从而不能被进程利用的内存区域。
    现在普遍采取的内存分配方式是段页式内存分配。将内存分为不同的段,再将每一段分成固定大小的页。通过页表机制,使段内的页可以不必连续处于同一内存区域。

答案部分:5)处理机调度与死锁

1、什么情况下会发生死锁,解决策略有哪些?

答:参考—https://blog.csdn.net/changfengxia/article/details/80313822

2、系统CPU比较高是什么原因?

答:CPU占用使用率其实就是你运行的程序占用的CPU资源,表示你的机器在某个时间点的运行程序的情况。
使用率越高,说明你的机器在这个时间上运行了很多程序,反之较少。使用率的高低与你的CPU强弱有直接关系。现代分时多任务操作系统对 CPU 都是分时间片使用的:比如A进程占用10ms,然后B进程占用30ms,然后空闲60ms,再又是A进程占10ms,B进程占30ms,空闲60ms;如果在一段时间内都是如此,那么这段时间内的占用率为40%。CPU对线程的响应并不是连续的,通常会在一段时间后自动中断线程。未响应的线程增加,就会不断加大CPU的占用。cpu使用率高的原因有很多,但是一般都是由于病毒木马或开机启动项过多所致。高CPU使用率也可能表明应用程序的调整或设计不良。优化应用程序可以降低CPU的使用率。

3、系统如何提高并发性?

答:

  • 1)物理层增加网络宽带,域名解析分发多台服务器。
  • 2)操作系统层,多线程多核编程,epoll,事件驱动框架,异步消息机制。
  • 3)业务层,优化数据库查询redis缓存。

第13天(1/1)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值