操作系统基本理论

SSL机制

进程和线程的应用场景:

多线程占相比于多进程占用内存少、CPU利用率高,创建销毁,切换都比较简单,速度很快。多进程相比于多线程共享数据复杂,需要将进程间通信。但是同步简单,多线程因为数据共享简单,导致同步复杂。多进程编程调试都比多线程简单。进程之间互相不影响,一个线程挂掉将导致整个进程挂掉。多进程适合多核,多机分布,多线程适合多核分布。
————————————————
原文链接
多进程应用场景
1.nginx主流的工作模式是多进程模式(也支持多线程模型)
2.几乎所有的web server服务器服务都有多进程的,至少有一个守护进程配合一个worker进程,例如apached,httpd等等以d结尾的进程包括init.d本身就是0级总进程,所有你认知的进程都是它的子进程;
3.chrome浏览器也是多进程方式。 (原因:①可能存在一些网页不符合编程规范,容易崩溃,采用多进程一个网页崩溃不会影响其他网页;而采用多线程会。②网页之间互相隔离,保证安全,不必担心某个网页中的恶意代码会取得存放在其他网页中的敏感信息。)
4.redis也可以归类到“多进程单线程”模型(平时工作是单个进程,涉及到耗时操作如持久化或aof重写时会用到多个进程)

多线程应用场景
线程间有数据共享,并且数据是需要修改的(不同任务间需要大量共享数据或频繁通信时)。
提供非均质的服务(有优先级任务处理)事件响应有优先级。
单任务并行计算,在非CPU Bound的场景下提高响应速度,降低时延。
与人有IO交互的应用,良好的用户体验(键盘鼠标的输入,立刻响应)
案例:
桌面软件,响应用户输入的是一个线程,后台程序处理是另外的线程;
————————————————
原文链接

计算机网络:

1、 osi 结构—各层协议
OSI的七层协议主要包括:
物理层(physical layer)
数据链路层(data link layer)
网络层(network layer)
运输层(transport layer)
会话层(session layer)
表示层(presentation layer)
应用层(application layer)

在这里插入图片描述
网络层:copy
(3)网络层
提供阻塞控制,路由选择(静态路由,动态路由)等

1)IP:网际协议。IP协议提供不可靠、无连接的传送服务。IP协议的主要功能有:无连接数据报传输、数据报路由选择和差错控制。IP地址是重要概念

2)ARP:地址解析协议。基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。以太网中的数据帧从一个主机到达网内的另一台主机是根据48位的以太网地址(硬件地址)来确定接口的,而不是根据32位的IP地址。内核必须知道目的端的硬件地址才能发送数据。P2P的连接是不需要ARP的。

3)RARP:反向地址转换协议。允许局域网的物理机器从网关服务器的 ARP 表或者缓存上请求其 IP 地址。局域网网关路由器中存有一个表以映射MAC和与其对应的 IP 地址。当设置一台新的机器时,其 RARP 客户机程序需要向路由器上的 RARP 服务器请求相应的 IP 地址。假设在路由表中已经设置了一个记录,RARP 服务器将会返回 IP 地址给机器。

4)IGMP:组播协议包括组成员管理协议和组播路由协议。组成员管理协议用于管理组播组成员的加入和离开,组播路由协议负责在路由器之间交互信息来建立组播树。IGMP属于前者,是组播路由器用来维护组播组成员信息的协议,运行于主机和和组播路由器之间。IGMP 信息封装在IP报文中,其IP的协议号为2。

5)ICMP:Internet控制报文协议。用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

  1. BGP :边界网关协议。处理像因特网大小的网络和不相关路由域间的多路连接。

7)RIP:路由信息协议。是一种分布式的基于距离矢量的路由选择协议。
————————————————
原文链接

物理层:RJ45、CLOCK、IEEE802.3(中继器、集线器),ISO2110,光导纤维,双绞线
数据链路层:wi-fi, ATM, DTM,令牌环,以太网,PPPoE ,PPP、FR、HDLC、VLAN、MAC(网桥、交换机)
网络层:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP(交换机)
传输层:TCP(T/TCP · Fast Open) UDP DCCP SCTP RSVP PPTP TLS/SSL
会话层:NFS、SQL、NETBIOS、RPC
表示层:JPEG、MPEG、ASII
应用层:DHCP(v6) DNS FTP Gopher HTTP(SPDY、HTTP/2) IMAP4 IRC NNTP XMPP POP3 SIP SMTP SNMP SSH TELNET RPC RTCP RTP RTSP SDP SOAP GTP STUN NTP SSDP

2、 应用层协议都有什么
OSI应用层协议包含了用于***网络进程间通信的协议***,并提供稳定的通信接口和终端用户服务。应用层是OSI模型的第七层,也是唯一与终端用户直接交互的分层。
http https dns
1 DNS
域名系统DNS是因特网使用的命名系统,用来把便于人们使用的机器名字转换为IP地址。

现在顶级域名TLD分为三大类:国家顶级域名nTLD;通用顶级域名gTLD;基础结构域名

域名服务器分为四种类型:根域名服务器;顶级域名服务器;本地域名服务器;权限域名服务器。

2
FTP:文件传输协议FTP是因特网上使用得最广泛的文件传送协议。FTP提供交互式的访问,允许客户指明文件类型与格式,并允许文件具有存取权限。FTP其于TCP。

3 telnet远程终端协议:telnet是一个简单的远程终端协议,它也是因特网的正式标准。又称为终端仿真协议。

4
HTTP:超文本传送协议,是面向事务的应用层协议,它是万维网上能够可靠地交换文件的重要基础。http使用面向连接的TCP作为运输层协议,保证了数据的可靠传输。

5
电子邮件协议SMTP:即简单邮件传送协议。SMTP规定了在两个相互通信的SMTP进程之间应如何交换信息。SMTP通信的三个阶段:建立连接、邮件传送、连接释放。

6 POP3:邮件读取协议,POP3(Post Office Protocol 3)协议通常被用来接收电子邮件。

7、SNMP:简单网络管理协议。由三部分组成:SNMP本身、管理信息结构SMI和管理信息MIB。SNMP定义了管理站和代理之间所交换的分组格式。SMI定义了命名对象类型的通用规则,以及把对象和对象的值进行编码。MIB在被管理的实体中创建了命名对象,并规定类型。

3、 ftp是什么
应用程序
FTP(文本传输) 远程控制电脑
1)默认使用21端口(控制端口),20数据端口
2)一般用于C/S模式,需要账号和密码登录
3)主要用于文件的批量处理
4)它比HTTP协议更早出现

4、 网页输入http地址后的过程
HTTP协议是建立在请求/响应模型上的。首先由客户建立一条与服务器的TCP链接,并发送一个请求到服务器,请求中包含请求方法、URI、协议版本以及相关的MIME样式的消息。服务器响应一个状态行,包含消息的协议版本、一个成功和失败码以及相关的MIME式样的消息。
(MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。)

5、 tcp和udp的区别
TCP是面向有连接型,UDP是面向无连接型;
TCP是一对一传输,UDP支持一对一、一对多、多对一和多对多的交互通信;
TCP是面向字节流的,即把应用层传来的报文看成字节流,将字节流拆分成大小不等的数据块,并添加TCP首部;UDP是面向报文的,对应用层传下来的报文不拆分也不合并,仅添加UDP首部;
TCP支持传输可靠性的多种措施,包括保证包的传输顺序、重发机制、流量控制和拥塞控制;UDP仅提供最基本的数据传输能力。

6、 tcp如何实现可靠传输
三次握手

7、 TCP 三次握手
1、第一次握手:建立连接时,客户端发送 syn 包(seq=j)到服务器,并进入 SYN_SENT 状态, 等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
2、第二次握手:服务器收到 syn 包,必须确认客户的 SYN(ack=j+1),同时自己也发送一个 SYN 包(seq=k),即 SYN+ACK 包,此时服务器进入 SYN_RECV 状态。
3、第三次握手:客户端收到服务器的 SYN+ACK 包,向服务器发送确认包 ACK(ack=k+1),此包 发送完毕,客户端和服务器进入 ESTABLISHED(TCP 连接成功)状态,完成三次握手。

9、为什么是三次握手
为什么不是两次?
第三次握手看似多余其实不然,这主要是为了防止已失效的请求报文段突然又传送到了服务端而产生连接的误判
为什么不是四次?
三次就可以确认了
tcp三次握手

10、get和post的区别
GET 请求:
1、GET 请求可被缓存
2、GET 请求保留在浏览器历史记录中
3、GET 请求可被收藏为书签
4、GET 请求不应在处理敏感数据时使用
5、GET 请求有长度限制
6、GET 请求只应当用于取回数据
Post请求:
1、POST 请求不会被缓存
2、POST 请求不会保留在浏览器历史记录中
3、POST 不能被收藏为书签
4、POST 请求对数据长度没有要求

11、 B/S和C/S的区别是什么?
1、硬件环境不同2.对安全要求不同3.对程序架构不同4.软件重用不同5.系统维护不同6.处理问题不同7.用户接口不同8.信息流不同
2、BS-浏览器服务器–建立在广域网–对信息安全的控制力相对较弱–由构件组成,用户自己可以下载安装
3、CS-客户端服务器–建立在专用网络–对信息控制力相对较强—是一个全新的系统

12、cooike和session产生的过程,以及两者的区别?

cookie的工作流程 缓存的记录
客户端访问服务器,服务器调用response.addcookie()方法,产生响应时,会产生set-cookie响应头,将cookie文本发送给客户端,客户端会将cookie文本保存起来,当客户端在次请求服务器时,会产生cookie请求头,将之前服务器发送的cookie信息,在发送给服务器,服务器就可以根据cookie信息跟踪客户端的状态

Session的工作流程 定时的缓存
客户端访问服务器,服务器调用request.getsession()方法,产生session对象,用于跟踪用户的状态,同时,给session对象分配一个唯一标识sessionld
为了管理session对象,以sessionld为键,以session对象为值,封装成map集合,产生响应时,将sessionld以cookie方式发送给客户端,存放在客户端浏览器的缓存中,当客户端再次请求服务器,会将sessionld以cookie请求头的方式发送给服务器,服务器得到sessionld后,从map集合中,得到session对象,从而跟踪状态

区别:
session保存在服务器,客户端不知道其中的信息
cookie保存在客户端,服务器能够知道其中的信息
session中保存的是对象,cookie中保存的是加密字符串
session不能区分路径,同一个用户在访问同一个网站期间,所有的session在任何一个地方都可以访问到,而cookid中设置了路径参数,那么同一个网站中不同路径下的cookie,互相是访问不到的
session默认需要借助cookie才能正常工作,如果客户端全面禁止cookie,那么session这种方法将失效
session在用户会话结束之后就关闭了,但cookie因为保存在客户端,可以长期保存

13、TCP,UDP对应的应用层协议
TCP对应的典型的应用层协议:
FTP:文件传输协议;
SSH:远程登录协议;
HTTP:web服务器传输超文本到本地浏览器的超文本传输协议。

UDP对应的典型的应用层协议:
DNS:域名解析协议;
TFTP:简单文件传输协议;
Trivial File Transfer Protocol
SNMP:简单网络管理协议。
Simple Network Management Protocol

14、常用的HTTP方法有哪些?
GET: 用于请求访问已经被URI(统一资源标识符)识别的资源,可以通过URL传参给服务器
POST:用于传输信息给服务器,主要功能与GET方法类似,但一般推荐使用POST方式。
PUT: 传输文件,报文主体中包含文件内容,保存到对应URI位置。
HEAD: 获得报文首部,与GET方法类似,只是不返回报文主体,一般用于验证URI是否有效。
DELETE:删除文件,与PUT方法相反,删除对应URI位置的文件。
OPTIONS:查询相应URI支持的HTTP方法。

【根据HTTP标准,HTTP请求可以使用多种请求方法。
HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。
HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。

GET 请求指定的页面信息,并返回实体主体。
HEAD 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。

PUT 从客户端向服务器传送的数据取代指定的文档的内容。
DELETE 请求服务器删除指定的页面。
CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
OPTIONS 允许客户端查看服务器的性能。
TRACE 回显服务器收到的请求,主要用于测试或诊断。
————————————————
版权声明:本文为CSDN博主「快乐李同学(李俊德-大连理工大学)」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wq6ylg08/article/details/82868595】

15、http和https的区别

  1. HTTP 的URL 以http:// 开头,而HTTPS 的URL 以https:// 开头
  2. HTTP 是不安全的,而 HTTPS 是安全的
  3. HTTP 标准端口是80 ,而 HTTPS 的标准端口是443
  4. 在OSI 网络模型中,HTTP工作于应用层,而HTTPS 工作在传输层
  5. HTTP 无法加密,而HTTPS 对传输的数据进行加密
  6. HTTP无需证书,而HTTPS 需要CA机构wosign的颁发的SSL证书

16、web服务器对连接的处理过程

  1. 接受客户端连接;
  2. 接受请求报文;
  3. 处理请求;
  4. 访问web资源;
  5. 构造应答;
  6. 发送应答。

17、http常见状态码
303:永久移动
302:临时移动
404:未找到
500:服务器内部错误
3** 重定向-完成请求需要进一步操作
4** 请求错误
5** 服务器错误

【1xx:指示信息–表示请求已接收,继续处理
2xx:成功–表示请求已被成功接收、理解、接受
3xx:重定向–要完成请求必须进行更进一步的操作
4xx:客户端错误–请求有语法错误或请求无法实现
5xx:服务器端错误–服务器未能实现合法的请】

18、进程和线程的区别?
线程是指进程内的一个执行单元,也是进程内的可调度实体
与进程的区别
(1)、地址空间:进程内的一个执行单元,进程至少有一个线程,他们共享进程的地址空间,而进程有自己独立的地址空间
(2)、资源拥有:进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源
(3)、线程是处理器调度的基本单位,但进程不是
(4)、二者均可并发执行

19、结合五层模型,注意分析各层的封装,使用哪些协议。哪些协议是可靠传输,面向连接,哪些协议是不可靠传输,非面向连接?

应用层 文件传输,电子邮件,文件服务,虚拟终 端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet
传输层:提供端对端的接口 TCP,UDP

网络层:为数据包选择路由 IP,ICMP,RIP,OSPF,BGP,IGMP

数据链路层:传输有地址的帧以及错误检测功能 SLIP,CSLIP,PPP,ARP,RARP,MTU

物理层:以二进制数据形式在物理媒体上传输数据 ISO2110,IEEE802,IEEE802.2

TCP提供IP下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。

而UDP则不为IP提供可靠性、流控或差错恢复功能,是非面向连接,不可靠的传输。

TCP支持的应用协议主要有:Telnet、FTP、SMTP等。

UDP支持的应用层协议主要有:NFS(网络文件系统)、SNMP(简单网络管理协议)、DNS(主域名称系统)、TFTP(通用文件传输协议)等.

token 和session 的区别

session 和 oauth token并不矛盾,作为身份认证 token安全性比session好,因为每个请求都有签名还能防止监听以及重放攻击,而session就必须靠链路层来保障通讯安全了。如上所说,如果你需要实现有状态的会话,仍然可以增加session来在服务器端保存一些状态

App通常用restful api跟server打交道。Rest是stateless的,也就是app不需要像browser那样用cookie来保存session,因此用session token来标示自己就够了,session/state由api server的逻辑处理。 如果你的后端不是stateless的rest api, 那么你可能需要在app里保存session.可以在app里嵌入webkit,用一个隐藏的browser来管理cookie session.

附:session 、cookie、token的区别:https://blog.csdn.net/jikeehuang/article/details/51488020

chrome和firfox http抓包

猜你喜欢

转载自blog.csdn.net/weixin_44697051/article/details/114285996
今日推荐