目录

一、OSI七层协议和TCP/IP五层协议,分别有哪些

二、HTTP状态码

三、HTTP请求类型

四、HTTP请求头和响应头

1、常见HTTP请求体属性

2、常见HTTP响应头属性

五、HTTP/1.x与HTTP/2.0区别

六、HTTPS

七、HTTP与HTTPS不同

八、三次握手和四次挥手

1、三次握手

2、四次挥手

3、TIME_WAIT的意义

4、如果已经建立了连接,但客户端出现了故障怎么办?

5、TCP三次握手哪一阶段容易受到攻击?

九、TCP可靠性的保证机制

1、检验和

2、序列号

3、确认应答机制(ACK)

4、超时重传机制

5、连接管理机制(三次握手四次挥手)

6、流量控制

7、拥塞控制

十、滑动窗口和拥塞窗口的区别

十一、TCP和UDP的区别

十二、在浏览器的地址栏中输入url后呈现页面的过程

十三、cookie的构成

十四、cookie、sessionStorage、localStorage 的区别

十五、GET和POST有什么区别

十六、简单请求和非简单请求

1、简单请求

2、非简单请求

十七、同源策略

十八、跨域

1、JSONP实现

2、Nodejs服务代理

3、服务器配置响应头CORS

十九、对称加密和非对称加密

二十、网络安全

1、XSS(Cross Site Scripting)跨站脚本攻击

2、CSRF(Cross-site request forgery)跨站请求伪造

3、HTTP劫持

二十一、浏览器缓存机制

1、浏览器缓存分类

2、如何控制强缓存

3、如何控制协商缓存

二十二、线程和进程



一、OSI七层协议和TCP/IP五层协议,分别有哪些

OSI七层模型 TCP/IP概念层模型 功能 TCP/IP协议族
应用层 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,
SMTP,DNS,Telnet
表示层 数据格式化,代码转换,数据加密 没有协议
会话层 解除或建立与别的接点的联系 没有协议
传输层 传输层 提供端对端的接口 TCP,UDP
网络层 网络层 为数据包选择路由 IP,ICMP,RIP,OSPF,BGP,IGMP
数据链路层 数据链路层 传输有地址的帧以及错误检测功能 SLIP,CSLIP,PPP,ARP,PARP,
MTU
物理层 物理层 以二进制数据形式在物理媒体上传输数据 ISO2110,IEEE802,IEEE802.2

二、HTTP状态码

1.状态码由3位数字组成,第一个数字定义了响应的类别,且有以下5重可能取值:

  • 100~199:指示信息,收到请求,需要请求者继续执行操作。
  • 200~299:请求成功,请求已被成功接收并处理。
  • 300~399:重定向,要完成请求必须进行更进一步的操作。
  • 400~499:客户端错误,请求有语法错误或请求无法实现。
  • 500~599:服务端错误,服务器不能实现合法的请求。

2.常用状态码如下:

  • 100(继续):请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。
  • 101(切换协议):请求者已要求服务器切换协议,服务器已确认并准备切换。
  • 200(成功):服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。
  • 201(已创建):请求成功并且服务器创建了新的资源。
  • 202(已接受):服务器已接受请求,但尚未处理。
  • 203(非授权信息):服务器已成功处理了请求,但返回的信息可能来自另一来源。
  • 204(无内容):服务器成功处理了请求,但没有返回任何内容。
  • 205(重置内容):服务器成功处理了请求,但没有返回任何内容。
  • 206(部分内容):服务器成功处理了部分 GET 请求。
  • 300(多种选择):针对请求,服务器可执行多种操作。 服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。
  • 301(永久移动):请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。
  • 302(临时移动):服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
  • 303(查看其他位置):请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。
  • 304(未修改):自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。两种情况回返回304:请求头的Last-Modified的日期与响应头的Last-Modified一致;请求头If-None-Match的hash值与响应头的ETag一致。
  • 305(使用代理):请求者只能使用代理访问请求的网页。 如果服务器返回此响应,还表示请求者应使用代理。
  • 307(临时重定向):服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
  • 400(错误请求):服务器不理解请求的语法。
  • 401(未授权): 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。
  • 403(禁止):服务器拒绝请求。
  • 404(未找到):服务器找不到请求的网页。
  • 405(方法禁用):禁用请求中指定的方法。
  • 406(不接受):无法使用请求的内容特性响应请求的网页。
  • 407(需要代理授权):此状态代码与 401(未授权)类似,但指定请求者应当授权使用代理。
  • 408(请求超时):服务器等候请求时发生超时。
  • 409(冲突):服务器在完成请求时发生冲突。 服务器必须在响应中包含有关冲突的信息。
  • 410(已删除): 如果请求的资源已永久删除,服务器就会返回此响应。
  • 411(需要有效长度):服务器不接受不含有效内容长度标头字段的请求。
  • 412(未满足前提条件):服务器未满足请求者在请求中设置的其中一个前提条件。
  • 413(请求实体过大):服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。
  • 414(请求的URI过长):请求的 URI(通常为网址)过长,服务器无法处理。
  • 415(不支持的媒体类型): 请求的格式不受请求页面的支持。
  • 416(请求范围不符合要求): 如果页面无法提供请求的范围,则服务器会返回此状态代码。
  • 417(未满足期望值):服务器未满足”期望”请求标头字段的要求。
  • 500(服务器内部错误):服务器遇到错误,无法完成请求。
  • 501(尚未实施):服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。
  • 502(错误网关):服务器作为网关或代理,从上游服务器收到无效响应。
  • 503(服务不可用):服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。
  • 504(网关超时):服务器作为网关或代理,但是没有及时从上游服务器收到请求。
  • 505(HTTP版本不受支持):服务器不支持请求中所用的 HTTP 协议版本。

三、HTTP请求类型

方法 描述
GET 请求指定的页面信息,并返回实体主体。
HEAD 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头。
POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件),数据被包含在请求体中。POST请求可能会导致新的资源的建立或已有资源的修改。
PUT 从客户端向服务器传送的数据取代指定的文档的内容。
DELETE 请求服务器删除指定的页面。
CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
OPTIONS 允许客户端查看服务器的性能。
TRACE 回显服务器收到的请求,主要用于测试或诊断。

四、HTTP请求头和响应头

1、常见HTTP请求体属性

  • Accpet:告诉服务端,客户端接收什么类型的响应
  • Accept-Language:可接受的响应内容语言列表。
  • Referer:表示这是请求是从哪个URL进来的
  • Cache-Control:对缓存进行控制,如一个请求希望响应的内容在客户端缓存一年,或不被缓可以通过这个报文头设置
  • Content-Type:请求体的MIME类型 (用于POST和PUT请求中)
  • Accept-Encoding:这个属性是用来告诉服务器能接受什么编码格式,包括字符编码,压缩形式(一般都是压缩形式),例如:Accept-Encoding:gzip, deflate(这两种都是压缩格式)
  • Host:指定要请求的资源所在的主机和端口
  • If-Modified-Since:允许在对应的资源未被修改的情况下返回304未修改
  • If-None-Match:允许在对应的内容未被修改的情况下返回304未修改
  • User-Agent:告诉服务器,客户端使用的操作系统、浏览器版本和名称

2、常见HTTP响应头属性

  • Access-Control-Allow-Origin:指定哪些网站可以跨域源资源共享
  • Cache-Control:响应输出到客户端后,服务端通过该属性告诉客户端该怎么控制响应内容的缓存
  • Content-Language:响应内容所使用的语言
  • ETag:表示你请求资源的版本,如果该资源发生了变化,那么这个属性也会跟着变
  • Expires:指定一个日期/时间,超过该时间则认为此回应已经过期
  • Last-Modified:所请求的对象的最后修改日期
  • Location:在重定向中或者创建新资源时使用
  • Set-Cookie:服务端可以设置客户端的cookie

五、HTTP/1.x与HTTP/2.0区别

  1. HTTP/1.x是基于文本解析的,HTTP/2.0是基于二进制解析的;
  2. HTTP/2.0采用多路复用,很好的解决了浏览器限制同一个域名下的请求数量的问题;
  3. HTTP/2.0采用Header压缩,HTTP/1.x的header携带大量信息且重复,HTTP/2.0的通信双方各执一份header fields缓存,减少了传输大小与重复header的传输;
  4. HTTP/2.0采用服务端推送,减少了请求次数。

六、HTTPS

1、HTTPS = HTTP + 加密 + 认证 + 完整性保护

http的不足:

  • 通信使用未加密的明文,内容容易被窃取
  • 不验证通信方的身份,容易遭遇伪装
  • 无法验证报文的完整性,容易被篡改

https就是为了解决上述http协议的安全性问题诞生的。https并非是应用层的新协议,是基于http协议的,将http和tcp协议接口部分用SSL和TLS协议代替而已。

http: IP ➜ TCP ➜ HTTP(应用层)

https: IP ➜ TCP ➜ SSL ➜ HTTP(应用层)

2、工作原理

  1. 客户端使用 https url 访问服务器,则要求 web 服务器建立 ssl 链接。
  2. web 服务器接收到客户端的请求之后,会将网站的证书(证书中包含了公钥),传输给客户端。
  3. 客户端和 web 服务器端开始协商 SSL 链接的安全等级,也就是加密等级。
  4. 客户端浏览器通过双方协商一致的安全等级,建立会话密钥,然后通过网站的公钥来加密会话密钥,并传送给网站。
  5. web 服务器通过自己的私钥解密出会话密钥。
  6. web 服务器通过会话密钥加密与客户端之间的通信。

七、HTTP与HTTPS不同

  1. HTTPS需要CA(Certificate Authority,数字证书认证机构) 申请证书,免费的很少;
  2. HTTP默认80端口,HTTPS默认443端口;
  3. HTTP使用http标识符,HTTPS使用https标识符;
  4. HTTP是明文传输,HTTPS是加密传输;
  5. HTTP响应比HTTPS快,因为HTTPS还需要TSL握手,所以HTTPS更耗费服务器资源。

八、三次握手和四次挥手

1、三次握手

三次握手机制时为了保证能建立一个安全可靠的连接:第一次握手是由客户端发起,客户端会向服务端发送一个报文,报文里面SYN标志位是置1的,当服务器收到这个报文的时候就知道客户端要和我发起一个新的连接,于是服务端就向客户端发送一个确认消息包ACK位置1,以上两次握手之后,对于客户端而言,其实是已经知道了所有信息,就是我既能给服务端发送消息,我还能收到服务端的消息;对于服务端而言,两次握手时不够的,因为到目前为止,服务端只知道一件事情,客户端给我发送的消息我收的到,但是我发给客户端的消息,客户端能不能收到我还不知道。所以还要进行第三次握手。第三次握手就是当客户端收到服务端发过来的确认消息的报文之后,还要继续给服务端进行一个回应,也是一个ACK位置1的一个确认消息。通过以上三次连接,不管是服务端还是客户端都彼此知道了,我既能给对方发送消息也能收到对方的消息,那么这个连接就能被安全的建立了。

2、四次挥手

四次挥手机制,也是由客户端首先发起的,客户端会发起一个报文,在报文里面FIN标志位置1。当服务端收到这报文之后,我就知道了客户端想要和我断开连接,但是此时服务端不一定能做好准备,因为当客户端发起断开连接的时候,对于服务端而言它极有可能有未发送完的消息,它还要继续发送;所以此时对于服务端而言他只能进行一个消息确认,我先告诉服务器,我知道你要和我断开连接了,但是我这还可能没有做好准备,你还需要等我一下,等会我会告诉你。于是,发完这个消息确认包后,可能稍作片刻,它可能会继续发送一个断开连接的报文,一个FIN位置1的报文,是由服务端发送给客户端的,这个报文表示了服务端已经做好了断开连接的准备,那么当这个报文发给客户端的时候,客户端同样要给服务端继续发送一个消息确认的报文。一共有四次,通过这四次的相互沟通和连接,我就知道了,不管是服务端还是客户端都已经做好了断开连接的准备,于是连接就可以被断开了。

3、TIME_WAIT的意义

TIME_WAIT是指四次挥手中客户端接收了服务端的FIN报文并发送ACK报文给服务器后,仍然需要等待2MSL时间的过程。虽然按道理,四个报文都发送完毕,我们可以直接进入CLOSE状态了,但是我们必须假定网络是不可靠的,有可能最后一个ACK丢失。如果客户端发送的ACK发生丢失,服务器会再次发送FIN报文给客户端,所以TIME_WAIT状态就是用来重发可能丢失的ACK报文。

4、如果已经建立了连接,但客户端出现了故障怎么办?

服务端每收到一次客户端的请求后都会重新复位一个计时器,时间通常是设置位2小时,若两小时还没有收到客户端的任何数据,服务端就会发送一个探测报文段,以后每隔75s发送一次。若一连发送10个探测报文仍然没反应,服务端就认为客户端出了故障,接着就关闭连接。

5、TCP三次握手哪一阶段容易受到攻击?

TCP三次握手在第二阶段容易受到攻击,即syn溢出攻击,如果客户机伪造出大量第一次的sys同步报文,服务端就会依次消耗掉很多资源来保存客户端的信息,并进行确认,实际上确认是会失败的,但失败需要一定的时间,因为服务端会连续多次进行第二次握手确认后才认定失败。那么短时间有大量的sys同步报文涌向服务端,服务端资源可能被耗尽,就可能导致正常的客户端得不到响应而失败。

九、TCP可靠性的保证机制

1、检验和

发送的数据包的二进制相加然后取反,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP将丢弃这个报文段和不确认收到此报文段。

2、序列号

TCP将每个字节的数据都进行了编号,这就是序列号。序列号的作用:

  • 保证可靠性(当接收到的数据总少了某个序号的数据时,能马上知道)
  • 保证数据的按序到达
  • 提高效率,可实现多次发送,一次确认
  • 去除重复数据

3、确认应答机制(ACK)

接收方收到报文就会确认(累积确认:对所有按序接收的数据的确认)

4、超时重传机制

当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。

5、连接管理机制(三次握手四次挥手)

6、流量控制

TCP连接的每一方都有固定大小的缓冲空间,TCP的接收端只允许发送端发送接收端缓冲区能接纳的数据。当接收方来不及处理发送方的数据,能提示发送方降低发送的速率,防止包丢失。TCP使用的流量控制协议是可变大小的滑动窗口协议。接收方有即时窗口(滑动窗口),随ACK报文发送。

滑动窗口以段为单位发送数据包,每发送一个数据包需要等待一个 ACK 信号,当数据包往返时间越长效率越低。滑动窗口中窗口前端为已发送但为收到 ACK 的数据,后端为待发送数据。发送端一次发送多个数据,接收端回传收到的连续数据的 ACK 信号,缓存缺失数据之后的数据包(保持顺序)。发送端当收到 ACK 信号时,窗口向前依次移动,直到遇到有数据未确认时停止。一段时间后启动超时重传,接收端若收到缺失数据,则和缓存数据一起发送 ACK 信号,否则,抛弃缓存数据。

7、拥塞控制

当网络拥塞时,减少数据的发送。发送方有拥塞窗口,发送数据前比对接收方发过来的即使窗口,取二者最小值。拥塞控制算法分为四种:慢启动、拥塞避免、快重传、快恢复。

慢启动:开始传输时,发送窗口(指数据大小)由小到大逐渐增大到拥塞窗口的数值。

拥塞避免:拥塞避免算法和慢启动算法是两个不同的算法,但是他们都是为了解决拥塞,在实际中这两个算法通常是在一起实现的。相比于慢启动算法拥塞避免算法多维护了一个慢启动阈值 ssthresh。当 cwnd(拥塞窗口) < ssthresh 时,拥塞窗口使用慢启动算法,按指数级增长。 当 cwnd > ssthresh 时,拥塞窗口使用拥塞避免算法,按线性增长。

快重传:数据传输时(数据被分成报文,每个报文都有个序号),中间的一部分丢失接收方没收到,接收方连续接到后面的数据,则发回对丢失前的数据的重复确认,这样发送方就知道有部分数据丢失了,于是从丢失出重传数据。

快恢复:快恢复是与快重传配合的算法,在发生数据丢失时,发送方收到接收方发回的三个重复确认信息时,就把每次传输的数据量减为原来的一半,拥塞窗口也修改为这个值,然后又开始拥塞避免的算法。

十、滑动窗口和拥塞窗口的区别

两种算法都是对发送方的行为进行控制的。 

        拥塞控制是防止过多的数据注入到网络中,导致网络发生拥塞; 流量控制是防止发送方一下子发送过多的数据到接收方,导致接收方缓存放不下。

十一、TCP和UDP的区别

  1. TCP是面向连接的,UDP是面向无连接的;
  2. TCP是面向字节流的,UDP是基于数据报的;
  3. TCP是可靠传输的,UDP是不可靠传输的;
  4. TCP只能是一对一通信,UDP支持一对一,一对多,多对一和多对多交互通信;
  5. TCP首部最小20字节,最大60字节,UDP首部开销小,仅8字节;
  6. TCP适用于要求可靠传输的应用(文件传输),UDP适用于实时应用(IP电话、视频会议、直播等)

十二、在浏览器的地址栏中输入url后呈现页面的过程

  1. 浏览器检查是否有缓存(浏览器缓存-系统缓存-路由缓存),如果有,直接显示;
  2. 如果没有缓存,进行DNS解析,得到具体的服务器IP地址;
  3. 客户端三次握手后建立TCP连接,向服务器发起http请求;
  4. 服务器响应http请求,浏览器得到html代码;
  5. 浏览器解析html代码,生成DOM树和CSSOM树,构建render树,最终渲染页面。

十三、cookie的构成

  1. Name/Value:设置Cookie的名称及相对应的值,对于认证Cookie,Value值包括Web服务器所提供的访问令牌。
  2. Expires属性:设置Cookie的生存期。有两种存储类型的Cookie:会话性与持久性。Expires属性缺省时,为会话性Cookie,仅保存在客户端内存中,并在用户关闭浏览器时失效;持久性Cookie会保存在用户的硬盘中,直至生存期到或用户直接在网页中单击“注销”等按钮结束会话时才会失效。
  3. Path属性:定义了Web站点上可以访问该Cookie的目录。
  4. Domain属性:指定了可以访问该 Cookie 的 Web 站点或域。Cookie 机制并未遵循严格的同源策略,允许一个子域可以设置或获取其父域的 Cookie。当需要实现单点登录方案时,Cookie 的上述特性非常有用,然而也增加了 Cookie受攻击的危险,比如攻击者可以借此发动会话定置攻击。因而,浏览器禁止在Domain属性中设置.org、.com 等通用顶级域名、以及在国家及地区顶级域下注册的二级域名,以减小攻击发生的范围 。
  5. Secure属性:指定是否使用HTTPS安全协议发送Cookie。使用HTTPS安全协议,可以保护Cookie在浏览器和Web服务器间的传输过程中不被窃取和篡改。该方法也可用于Web站点的身份鉴别,即在HTTPS的连接建立阶段,浏览器会检查Web网站的SSL证书的有效性。但是基于兼容性的原因(比如有些网站使用自签署的证书)在检测到SSL证书无效时,浏览器并不会立即终止用户的连接请求,而是显示安全风险信息,用户仍可以选择继续访问该站点。由于许多用户缺乏安全意识,因而仍可能连接到Pharming攻击所伪造的网站。
  6. HTTPOnly属性:用于防止客户端脚本通过document.cookie属性访问Cookie,有助于保护Cookie不被跨站脚本攻击窃取或篡改。但是,HTTPOnly的应用仍存在局限性,一些浏览器可以阻止客户端脚本对Cookie的读操作,但允许写操作;此外大多数浏览器仍允许通过XMLHTTP对象读取HTTP响应中的Set-Cookie头。

十四、cookie、sessionStorage、localStorage 的区别

  1. cookie数据大小不能超过4k;sessionStorage和localStorage的存储比cookie大得多,可以达到5M+;
  2. cookie设置的过期时间之前一直有效,localStorage永久存储,浏览器关闭后数据不丢失除非主动删除数据,sessionStorage数据在当前浏览器窗口关闭后自动删除;
  3. cookie的数据会自动的传递到服务器;sessionStorage和localStorage数据保存在本地。

十五、GET和POST有什么区别

  1. GET参数通过URL传递,POST放在Request body中;
  2. GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息;
  3. GET在浏览器回退时是无害的,而POST会再次提交请求;
  4. GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留;
  5. GET请求在URL中传送的参数是有长度限制的,而POST没有;
  6. GET请求只能进行url编码,而POST支持多种编码方式;
  7. GET参数的数据类型只接受ASCII字符,而POST没有限制。

十六、简单请求和非简单请求

1、简单请求

满足以下两个条件的请求。

请求方法十以下三种方法之一:

  • HEAD
  • GET
  • POST

HTTP的头信息不超出以下几种字段:

  • Accept
  • Accept-Language
  • Content-Language
  • Last-Event-ID
  • Content-Type:只限于三个值application/x-www-form-urlencoded、multipart/form-data、text/plain

2、非简单请求

不是简单请求就是非简单请求。非简单请求在正式请求前都会有预检请求,在浏览器中都能看到OPTIONS请求,用于向服务器请求权限信息的。

十七、同源策略

  • 同源策略是一个重要的安全策略,它用于限制一个源与另一个源的资源进行交互。主要是浏览器对资源的安全控制,防止跨域访问。
  • 只要协议相同,域名相同,端口号相同,就属于同源

十八、跨域

当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域。

1、JSONP实现

步骤:

  1. 创建一个script标签
  2. script的src属性设置接口地址
  3. 接口参数必须要带一个自定义函数名,要不然后台无法返回数据
  4. 通过定义函数名去接收返回的数据
//动态创建script
var script = document.createElement('script');//设置回调函数
function getData(data){console.log(data);
}//设置script的src属性,并设置请求地址
script.src = 'http://localhost:3000/?callback=getData';//让script生效
document.body.appendChild(script);

2、Nodejs服务代理

可以通过 webpack.config.js 文件来配置 proxy 属性来解决请求跨域的问题。

proxyTable: {'/apis':{target: 'http://api.abc.com/',  // 后台apichangeOrigin: true,  //是否跨域// secure: true,pathRewrite: {'^/apis': ''   //需要rewrite的,}}
}

3、服务器配置响应头CORS

  • Access-Control-Allow-Origin:后端开发可以通过配置接口服务的响应头来允许跨域请求访问资源,* 代表允许所有来源,也可以手动指定白名单
Access-Control-Allow-Origin: *
Access-Control-Allow-Origin: https://www.baidu.com
  • Access-Control-Allow-Headers:设置服务器允许访问携带的请求头,一般在预检请求用到,告诉浏览器允许接收哪些自定义头
Access-Control-Allow-Headers: LANG
  • Access-Control-Allow-Methods:设置服务器允许的请求方法,一般在预检请求回告诉客户端允许使用的方法,例如GET,POST,PUT等等
Access-Control-Allow-Methods: POST,GET,OPTIONS

十九、对称加密和非对称加密

  1. 对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key)。对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中。常见的有AES,DES,3DES等

  2. 非对称加密为数据的加密与解密提供了一个非常安全的方法,它使用了一对密钥,公钥(public key)和私钥(private key)。私钥只能由一方安全保管,不能外泄,而公钥则可以发给任何请求它的人。非对称加密使用这对密钥中的一个进行加密,而解密则需要另一个密钥。常见的: RSA算法等。

二十、网络安全

1、XSS(Cross Site Scripting)跨站脚本攻击

XSS攻击指的是攻击者往Web页面里插入恶意html标签或者javascript代码。比如:攻击者在论坛中放一个看似安全的链接,骗取用户点击后,窃取cookie中的用户私密信息;或者攻击者在论坛中加一个恶意表单,当用户提交表单的时候,却把信息传送到攻击者的服务器中,而不是用户原本以为的信任站点。

防范:

  1. 对于敏感的cookie信息,使用HttpOnly,使document对象中找不到cookie;
  2. 对于用户输入的信息要进行转义。

2、CSRF(Cross-site request forgery)跨站请求伪造

攻击者盗用了你的身份,以你的名义发送恶意请求。

防范:

1. 验证HTTP Referer 字段;

2. 在请求地址中添加token并验证;

3. HTTP头中自定义属性并验证。

3、HTTP劫持

比如某一天你通过PC移动端打开浏览器,输入 www.1024nav.com 想要去查看前端面试指南,当输入完地址按下回车键的时候,发现跳转过去的页面是一个澳门赌博网址(广告),这个现象就是 HTTP 劫持。HTTP 劫持有 DNS 劫持和内容劫持:

  • DNS 劫持:通过浏览器,路由,DNS 运营商进行请求重定向到其他网址
  • 内容劫持:拦截请求响应的 HTML 数据,对 HTML 内容进行修改,插入 js 代码或者 iframe 代码

防范:

  1. 开启 HTTPS,HTTPS 是在 HTTP 基础上加入 TLS 保护,数据传输是加密的,无法劫持;
  2. 使用信誉良好的 DNS 厂商,手机,浏览器厂商。

二十一、浏览器缓存机制

1、浏览器缓存分类

浏览器缓存分为两种:强缓存,协商缓存

强缓存:浏览器在请求静态资源的时候,会根据静态资源的 Cache-Control ,Expires 判断是否超期,如果未超期则无需向服务器发起请求,直接使用缓存的文件,http返回的状态码为200

协商缓存:强缓存失效后,浏览器向服务端发起请求静态资源,服务端根据请求头的 ETag ,Last-Modify 判断资源是否失效,如果失效返回新的资源,未失效则告诉浏览器使用磁盘的缓存,http返回的状态码为304

2、如何控制强缓存

强缓存的控制请求头和响应头分别有:

  • Expires 和 Last-Modified
  • Cache-Control

两者都存在的情况下,Cache-Control的优先级更高

3、如何控制协商缓存

协商缓存的控制请求头和响应头分别有:

  • Last-Modify 和 If-Modify-Since
  • Etag 和 If-None-Match

两者都存在的情况下,ETag的优先级更高

二十二、线程和进程

进程十执行中的一段程序,而一个进程中执行的每个任务即为一个线程。

区别:

  1. 调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位;
  2. 并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行;
  3. 拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源;
  4. 系统开销:在创建或撤销进程时,由于系统都要为之分配和回收资源,导致系统的开销明显大于创建或撤销线程时的开销。​

计算机知识点总结(自用)相关推荐

  1. ap java内容_AP 计算机知识点总结

    AP Computer Science Principles 是美国大学先修课程体系里的一门,其课程和考试由美国大学理事会主持,是提供给美国高中在校生先修大学同等级别计算机科学原理的课程.该课程是计算 ...

  2. 文科生必备计算机知识点,文科生计算机知识点调查报告.docx

    文科生计算机知识点调查报告 文科生计算机知识点调查报告 篇一:大学文科高等数学概率统计重难点 第三章第一节:随机事件及其运算 重点: 1. 事件间的关系. 2. 事件运算的性质. 难点: 1. 区分& ...

  3. 小蔓的秋招计算机知识点急救方法

    攒人品嘿嘿! 秋招来了,想要复习计算机知识点刷题,但又发现知识不连在一起,感觉东一棒槌西一榔头刷题浪费时间...怎么办? 秋招计算机知识点快速复习,打通任督二脉~有缘人速看!!(自我感觉不错仅供参考) ...

  4. 山东专升本计算机知识点(上)

    山东专升本计算机知识点(上) 一.信息技术与计算机文化 1.1信息与信息技术 1.1.1信息与数据 信息的概念:信息是现代社会中广泛使用的一个概念,一般认为,信息是在自然界.人类社会和人类思维活动中普 ...

  5. 信用社考试计算机知识点,2010年农村信用社计算机知识点考题

    农村信用社招聘考试 2010年农村信用社计算机知识点考题 1.计算机根据运算速度.存储能力.功能强弱.配套设备等因素可划分为(). A)台式计算机.便携式计算机.膝上型计算机 B)电子管计算机.晶体管 ...

  6. 全国计算机二级---公共基础部分知识点(自用总结)

    1.1算法 算法不等于程序 1.特征:1)可行性 2)确定性 3)有穷性 4)足够的情报 2.基本结构:顺序,选择(分支),循环 3.时间复杂度:指计算工作量,基本运算次数 空间复杂度:需要的内存复杂 ...

  7. 八年级计算机知识点总结,人教版|八年级上册各单元必考知识点汇总,收藏!...

    原标题:人教版|八年级上册各单元必考知识点汇总,收藏! 今天小简老师给大家总结了人教版八年级上册各单元所有重难点和必考点,包括重点单词.短语.句型及其用法和语法考点,快期中考试了大家收藏起来好好学吧! ...

  8. xp计算机知识点,全国职称计算机考试Windowsxp知识点

    计算机应用能力考试的科目设定,是针对专业技术人员的实际应用需要,经过调查研究.专家论证.主管部门批准而确定的.下面yjbys小编收集一些全国职称计算机考试Windowsxp知识点,希望大家认真阅读! ...

  9. 计算机知识点小报,制作电脑小报的教案

    制作电脑小报的教案 教学目标: 巩固WORD知识,掌握文档间复制,培养学生的创新能力和综合解决问题的能力,加强爱国主义教育. 教学重点: 提高学生对WORD的熟练程度, 掌握文档间的复制操作及文字和图 ...

最新文章

  1. MLIR: 编译器基础架构重定义
  2. hdu2041java
  3. 从智能合约到智能资产
  4. 接口隔离原则——面向对象设计原则
  5. ReviewForJob——算法设计技巧(贪婪算法+分治算法+动态规划)
  6. udacity开源的数据_评论:Udacity数据分析师纳米学位计划
  7. python matplotlib画散点图_python matplotlib库绘制散点图例题解析
  8. cad画流程图的插件_盘一盘,那些提效/创意的 vscode 插件
  9. HDR与ToneMapping
  10. java 之美_Java并发编程之美 PDF 下载
  11. Windows应用崩溃捕获
  12. ESR-CMDS参数含义
  13. html下拉选择图片,图片+JavaScript+CSS打造漂亮的select下拉选择框
  14. NPDP知识推送-第六章市场研究(4)
  15. 深度相机原理和优势对比
  16. 查询出每个雇员的姓名,工资,部门名称,工资在公司的等级及其领导的姓名,领导的工资,以及领导所对应的等级
  17. 红色高端爱家Aijiacms大型房产门户系统V9网站源码+带WAP
  18. D - Silver Cow Party J - Invitation Cards 最短路
  19. Android之近场通信技术
  20. 结构体的内存对齐规则

热门文章

  1. 电子商务设计师教程 电子版_设计电子商务产品组合:标题和英雄
  2. base64、图片相互转
  3. python处理行情数据_Python获取股票历史、实时数据与更新到数据库
  4. Linux 下的段错误分析
  5. 日出日落 matlab,如何计算日出和日落时间(matlab)?
  6. 腾讯云“优才计划”携手TGO鲲鹏会,助力新基建技术人才培养
  7. 最小生成树——北极通讯网络
  8. 有道云免会员更换背景图
  9. QQ移动端分享(主标题,副标题,分享图)可改
  10. Ps 初学者教程「57」如何让照片成为手绘美图?