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.DM4J解析:xml解析器一次性把整个xml文档加载进内存,然后在内存中构建一颗Document的对象树,通过Document对象,得到树上的节点对象,通过节点对象访问(操作)到xml文档的内容

六、计算机网络
❤1、网络概述
1、TCP协议在哪一层?IP协议在那一层?HTTP在哪一层?

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

❤2、运输层
1、讲一下TCP的连接和释放连接。

  • TCP连接过程:
    (1) 服务端通过socket,bind和listen准备好接受外来的连接,此时服务端状态为Listen
    (2)客户端通过调用connect来发起主动连接,导致客户端TCP发送一个SYN(同步)字节,告诉服务器客户将在(待建立的)连接中发送的数据的初始序列号,客户端状态为SYN_SENT。
    (3)服务器确认(ACK)客户的SYN,并自己也发送一个SYN,它包含服务器将在同一连接中发送数据的初始序列号。
    (4)客户端确认服务的ACK和SYN,向服务器发送ACK,客户端状态ESTABLISHED
    (5)服务器接收ACK,服务器状态ESABLISHED。
  • TCP连接中止过程:
    (1)某端首先调用close,成为主动关闭端,向另一端发送FIN分节,表示数据发送完毕,此时主动关闭端状态FIN_WAIT_1;
    (2)接收到FIN的是被动关闭端,FIN由TCP确认,先向主动关闭端发送ACK,作为一个文件结束符传递给接收端应用进程(放在已排队等候该应用进程接收到的任何其他数据之后),因为FIN的接收意味着接收端应用进程在相应连接无额外数据可接收,接收端状态CLOSE_WAIT;主动关闭端接收到ACK状态变为FIN_WAIT_2;
    (3)一段时间后,接收端接收到这个文件结束符的应用进程调用close关闭套接字,向主动关闭端发送FIN,接收端状态为LAST_ACK;
    (4)主动关闭端确认FIN,状态变为TIME_WAIT,并向接收端发送ACK,接收端接收到ACK关闭TCP,而主动关闭端一段时间后也关闭TCP;

2、TCP有哪些应用场景
tcp协议是面向连接的,可靠的数据传输协议,但是它的传输数据速率相比于udp协议比较慢。它适用于对数据传输可靠性要求比较高的场景,例如文本传输之类的。
应用场景:互联网和企业网上客户端应用,数据传输性能让位于数据传输的完整性,可控制性和可靠性。

3、tcp为什么可靠

  • [1] 确认和重传机制 建立连接时三次握手同步双方的“序列号 + 确认号 + 窗口大小信息”,是确认重传、流控的基础
    传输过程中,如果Checksum校验失败、丢包或延时,发送端重传
  • [2] 数据排序 TCP有专门的序列号SN字段,可提供数据re-order
  • [3] 流量控制 窗口和计时器的使用。TCP窗口中会指明双方能够发送接收的最大数据量
  • [4] 拥塞控制 TCP的拥塞控制由4个核心算法组成。 “慢启动”(Slow Start) “拥塞避免”(Congestion
    avoidance) “快速重传 ”(Fast Retransmit) “快速恢复”(Fast Recovery)

6、讲一下浏览器从接收到一个URL到最后展示出页面,经历了哪些过程。
1、在浏览器地址栏中输入URL

2、DNS域名解析,获得域名相对应的IP地址。
当我们在浏览器输入如同www.baidu.com的时候,其实这些网站的名字都是微克简化人们的记忆来命名的 ,计算机其实并不认识这个东西。浏览器只认识IP地址,所以当输入域名地址的时候,浏览器首先会从浏览器缓存中是否存在相应的域名、IP对应关系,如果有则向这个IP地址发送请求,如果没有则向系统缓存–路由缓存中查找,如果都没有,再去DNS服务器中找IP。
3、浏览器向服务器发起TCP连接,与浏览器建立TCP三次握手
4、浏览器向服务器发送HTTP请求,请求数据包
与服务器建立了连接后,就可以向服务器发起请求了。发送HTTP请求的过程就是构建HTTP请求报文,并通过TCP协议发送到服务器指定端口(HTTP协议80/8080,HTTPS协议443)。HTTP请求是由三部分组成:请求行、请求报头和请求正文。
5、服务器理收到的请求
服务器端收到请求后,由web服务器(准确来说应该是HTTP服务器)处理请求,诸如Apache、Ngnix、IIS等。web服务器解析用户请求,知道了要调度哪些资源文件,再通过相应的这些文件处理用户请求和参数,并调用数据库信息 ,最后将结果通过web服务器返回浏览器客户端。
6返回相应结果至浏览器
HTTP响应报文也是由三部分组成:状态码、响应报头和响应报文。
状态码是由三位数组成,第一个数字定义了响应的类别,且有5中可能值:

      ·  1XX:指示信息,表示请求已接受,继续处理。

      ·  2XX:成功,表示请求已被成功接收、理解、接受。

      ·  3XX:重定向,要完成请求必须进行更进一步的操作。

      ·  4XX:客户端错误,请求有语法错误或无法实现。

      ·  5XX:服务器端错误,服务器未能实现合法的请求。

      常见状态码有:200,204,301,302,304,400,401,404,500

7关闭TCP连接
为了避免服务器与客户端双方的资源占用和损耗,当双方没有请求或响应传递时,任意一方都可以发起关闭请求。
8、浏览器解析渲染页面
浏览器在收到HTML、CSS、JS文件后,就需要进行渲染。
浏览器是一个边解析边渲染的过程。首先浏览器解析HTML文件构建DOM树,然后解析CSS文件构建渲染树,等到渲染树构建完成后,浏览器开始布局渲染树并将其绘制到屏幕上。这个过程比较复杂,涉及到两个概念:reflow(回流)和repain(重绘)。DOM节点中的各个元素是以盒模型的形式存在,这些都需要浏览器去计算其位置和大小等,这个过程称为reflow;当盒模型的位置、大小以及其他属性,如颜色、字体等确定下来之后,浏览器便开始绘制内容,这个过程称为repain。页面在首次加载时必然会经历reflow和repain。reflow和repain过程是非常消耗性能的,尤其是在移动设备上,它破坏用户体验,有时会造成页面卡顿。所以我们应该尽可能的减少reflow和repain。
JS的解析是由浏览器中的JS解析引擎完成的。
浏览器在解析过程中,如果遇到请求外部资源时,如图像、JS等。浏览器将重复1-6过程下载该资源。请求过程是异步的,并不会影响HTML文档进行加载,但是当文档加载过程中遇到JS文件,HTML文档会挂起渲染过程,不仅要等到文档中JS文件加载完毕还要等待解析执行完毕,才会继续HTML的渲染过程。原因是因为JS有可能修改DOM结构,这就意味着JS执行完成前,后续所有资源的下载是没有必要的,这就是JS阻塞后续资源下载的根本原因。CSS文件的加载不影响JS文件的加载,但是却会影响JS文件的执行。JS代码执行前浏览器必须保证CSS文件已经下载并加载完毕。
PS:步骤二的具体过程是:
浏览器缓存:浏览器会记录DNS一段时间,因此,只是第一个地方解析DNS请求;
操作系统缓存:如果在浏览器缓存中不包含这个记录,则会使用系统调用操作系统,获取操作系统的记录(保证最近的DNS查询缓存);
路由器缓存:如果上述两个步骤均不能成功DNS记录,继续搜索路由器缓存;
ISP缓存:若上述均失败,继续向ISP搜索。

7、http和https的区别
https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
如何配置https

8、http的请求有哪些,应答码502和504有什么区别
502表示错误网关,无效网关 。 504表示网关超时,说明服务器作为网关或代理,但是没有及时从上游服务器收到请求。

9、http1.1和1.0的区别
1.1一个连接可以传送多个请求

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

04状态码是告诉浏览器可以从缓存中获取所请求的资源。
当浏览器请求某一文件时,发现自己缓存的文件有Last-Modified,就会在httpRequest里面添加消息头If-Modified-Since 和If-Non-Match,服务器在收到reqeust时,和服务器本地文件对比,如果没有更新,则仅仅返回一个响应头Head(状态码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、系统如何提高并发性?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值