黄冈网站免费投放平台免费下载,注册网址,网页编程是什么,前端线下培训什么是进程和线程#xff0c;有什么区别
进程#xff1a;进程是程序的一次执行过程#xff0c;是动态的过程#xff0c;有自身产生、存在、消亡的过程。
线程#xff1a;线程由进程创建#xff0c;是进程的一个实体。一个进程可以拥有多个线程。
举个例子#xff1a;…什么是进程和线程有什么区别
进程进程是程序的一次执行过程是动态的过程有自身产生、存在、消亡的过程。
线程线程由进程创建是进程的一个实体。一个进程可以拥有多个线程。
举个例子 一个公司是一个进程公司里面各个项目组都是一个线程。 再比如如果吃饭是一个进程那么夹菜、吃菜、咀嚼、吞咽都是线程。
前端网络攻击有哪几种模式以及怎样预防
1. XSS攻击 XSS指跨站脚本攻击攻击者通过向网站注入恶意代码实现攻击当用户浏览这个页面时就会执行这些恶意代码。可能造成泄露用户登陆信息cookie恶意跳转等。 预防XSS攻击的方法 1. 对注入的代码启动HTML编码。 2. 过滤非法字符。 3. 设置cookie属性http-only防止js脚本读取cookie。
2. CSRF攻击 CSRF攻击叫做跨站请求伪造通过盗用用户的身份信息发起请求。诱导用户跳转到新页面如果目标站点只使用cookie并且kookie是允许跨域的此时就能拿到用户的cookie来模拟用户进行操作。 预防CSRF攻击的方法 1. 增加用户与页面交互操作例如页面增加随机数字验证码。 2. 使用token来认证。 3. 设置cookie规定其他网站不能使用本网站的cookie。 浏览器缓存机制
浏览器缓存分为:强制缓存和协商缓存。
强制缓存定义当浏览器去请求某个文件的时候服务端就在响应头里面对该文件做了缓存规则配置。设置控制强制缓存的字段分别是Expires和Cache-Control其中Cache-Control优先级比Expires。Expires服务器返回该请求结果缓存的到期时间如果发送请求时客户端的时间小于Expires的值直接使用缓存结果。Cache-Control属性 public所有内容都缓存 private默认值所有内容只有客户端可以缓存 no-cache客户端缓存内容是否使用缓存需要协商缓存来决定 no-store所有内容都不会被缓存即不使用强制缓存也不使用协商缓存 max-agexxx缓存内容将在xxx秒后失效
协商缓存 强制缓存失效后浏览器携带缓存标识向服务器发起请求由服务器根据缓存标识决定是否使用缓存就叫协商缓存。 协商缓存主要还是看ETag和Last-ModifiedLast-Modified是文件的修改时间Etag是当前返回资源的唯一标识。
不能被缓存的请求 1. post 请求无法被缓存。缓存一般会对不更改数据库的数据进行缓存对于更改数据的数据一般不进行缓存。所以get请求会被缓存post请求不会进行缓存 2. http响应头中不包含Last-Modified/ETag也不包含Cache-Control/Expiress的请求。 3. http信息头明确设置Cache-Control:no-cache 或 Cache-Control:max-age0时。 http和https基本概念、区别
概念 http超文本传输协议是互联网应用最为广泛的一种网络协议。 httpsHTTP的安全版。即HTTP下加入SSL层。
区别 1. http是明文传输https是加密传输。 2. http标准端口是80http是443。 3. https需要证书认证http不需要。 4. http连接简单是无状态的https是可进行加密传输、身份认证的网络协议比http更加安全。 常见的http请求有哪些
GET请求从服务器获取特定资源 POST在服务器上创建一个新的资源 DELETE从服务器删除特定的资源 PUT更新服务器上的资源
GET和POST区别 1. GET参数通过URL传递POST放在请求体中。 2. GET参数会直接暴露在URL上不能放敏感信息POST相对于GET更安全。 3. GET请求在URL中传送的参数是有长度限制的。 HTTP常见状态码
2开头成功状态码 200请求成功
3开头重定向状态码 301永久移动 302临时移动 304走缓存第一次成功状态码为200第二次F5刷新为304。按CtrlF5强制刷新为200
4开头客户端错误状态码 400请求语法报错或者请求参数有误 401未授权的请求无权限访问身份验证错误 403禁止访问 404找不到资源一般为路径错误
5开头服务器错误状态码 500服务器错误 503服务不可用 http1.0和2.0的区别
http1.0: 1. 每次连接只发送一个请求 2. 使用URL重定向完成页面跳转功能。 3. 消息体只支持文本格式。 4. 不支持长链接每次请求结束连接也会结束。http2.0: 1. 支持多路复用。 2. 支持服务器推送。 3. 支持加密传输提高安全性。 4. 头部压缩减少数据传输量。
TCP三次握手与四次挥手
TCP三次握手和四次挥手实质是TCP通信的连接和断开。三次握手第一次客户端-服务端发送SYN标志表示请求建立新连接。第二次服务端-客户端回传SYN和ACK表示我收到了并且同意连接。第三次客户端-服务端回传ACK标志表示我知道你收到了。
四次挥手第一次客户端-服务端发送FIN标志表示客户端不再发送数据了。第二次服务端-客户端回传ACK响应确认服务器进入CLOSE_WAIT状态在第三次挥手之前数据还是可以从客户端传送到服务端的。第三次服务端-客户端服务端完成数据请求后向客户端发送FIN标志表示服务端也不再发送数据了。第四次客户端-服务端回复ACK响应确认此时客户端处于TIME_WAIT状态需要经过一段时间确保服务器收到自己的应答报文后才会进入CLOSED状态。
为什么要三次握手不是两次握手 是为了确保双方都能够收到对方的请求和应答建立可靠的连接。如果只有两次握手那么无法确定客户端和服务器端都已经同意建立连接。 打个比方约我想约好朋友出来玩我先发送消息告知我想和你出来玩。朋友回复好啊一起出来玩。我再发送那我们现在出门吧。如果只发送两次第二次我能知道她同意出来玩了但是她并不知道我是否知道她同意出来玩。
为什么握手三次挥手却要四次 四次挥手之所以是四次是因为在TCP中数据的传输是双向的每一方都需要单独关闭连接而且可能还存在未传输完的数据段和对方的ACK报文因此需要四次握手来确保双方的连接被正确关闭。 tcp如何保证数据传输可靠
1. 数据分块将数据划分为合适大小当数据发生错误或丢失只需要重传有问题的部分即可。2. 序列号给发送的每一个包进行编号可以根据序号对失序的数据包进行重新排序、去重。3. 超时重传发送数据后长时间没收到回应会把数据再发一次。4. 流量控制5. 拥塞控制网络拥塞时减少数据的发送。 WebPack是什么谈谈你对他的理解
webPack可以看做是模块的打包机器它能分析项目结构找到浏览器不能直接运行的拓展语言例如ScssTS等并将其打包为合适的格式以供浏览器使用。
对于不同类型的资源webPack有对应的模块加载器loader CSS 解析CSS的css-loader、style-loader 解析less的less-loadersass的sass-loader,
JS 解析将 TypeScript 转换成 JavaScript的ts-loader, 解析ES6为ES5的babel-loader 解析JavaScript 代码规范的eslint-loader
vuevue-loader
静态资源url-loader、file-loader、json-loader
如何利用webpack优化前端性能 1. 压缩代码删除多余代码。 2. 利用CDN将静态资源上传到CDN上。 3. 提取公共代码。 WebSocket了解吗
WebSocket是一种客户端和服务端通信的方式。服务器可以主动向客户端推送信息客户端也可以主动向服务器发送信息是真正的双向平等对话。
由于websocket会断开需要有断开重连机制可以使用reconnecting websocket它是一个websocketd的js库非常小压缩后仅有3KB。当websocket断线后会自动帮你重连。使用非常简单new WebSocket替换成new ReconnectingWebSocket即可。
常用的属性和方法 readyState连接的四种状态。1表示连接成功。 onopen连接成功后的回调函数 send向服务器发送数据 onmessage收到服务器数据后的回调函数。 onclose连接关闭后的回调函数。
var ws new WebSocket(wss://echo.websocket.org);ws.onopen function(evt) { console.log(Connection open ...); ws.send(Hello WebSockets!);
};ws.onmessage function(evt) {console.log( Received Message: evt.data);ws.close();
};ws.onclose function(evt) {console.log(Connection closed.);
};单页面和多页面
单页面即只有一个主页面的应用。浏览器一开始会加载所有必须的html、js、css资源。页面跳转通过路由或元素的显示隐藏进行切换。单页面应用从头到尾它的html地址是不变的。 优点是用户体验性好内容改变不需要重新加载整个页面切换快。但初次加载会比较慢。
多页面每次页面跳转都会切换一个新的html地址跳转会刷新所有资源。 优点是一开始不用加载所有的资源首页加载快。但是加载新页面需要重新请求资源所以切换会比较慢。 canvas和svg有什么区别
1. 绘制语法不同。canvas使用jshtml绘制svg使用xml绘制。 2. canvas通过像素渲染图形适合绘制简单的图形和文字svg通过dom节点渲染适合绘制复杂的图形。 3. canvas的性能会好一些如果svg节点过多会导致渲染速度变慢。 4. canvas依赖分辨率缩放会存在失真问题svg缩放不会失真。 5. canvas不支持事件svg支持分层和事件。