<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[weixin_48062613的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/weixin_48062613</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; weixin_48062613]]></copyright><item><title><![CDATA[nginx 重启失败]]></title><link>https://blog.youkuaiyun.com/weixin_48062613/article/details/124481964</link><guid>https://blog.youkuaiyun.com/weixin_48062613/article/details/124481964</guid><author>weixin_48062613</author><pubDate>Thu, 28 Apr 2022 19:42:54 +0800</pubDate><description><![CDATA[问题描述
/usr/local/tapd/nginx/sbin/nginx -s reload

报错
nginx: [error] open() “/usr/local/tapd/nginx-1.8.0-tlinux/logs/nginx.pid” failed (2: No such file or directory)
解决方法
/usr/local/nginx/sbin/nginx  -c/usr/local/nginx/conf/nginx.conf

/usr/local/tapd/nginx/]]></description><category></category></item><item><title><![CDATA[git分支相关代码]]></title><link>https://blog.youkuaiyun.com/weixin_48062613/article/details/119153098</link><guid>https://blog.youkuaiyun.com/weixin_48062613/article/details/119153098</guid><author>weixin_48062613</author><pubDate>Tue, 27 Jul 2021 20:55:20 +0800</pubDate><description><![CDATA[添加新分支： git checkout -b [分支名]
查看新分支：git branch
切换分支： git checkout [分支名]
添加到暂存区: git add . 也可以通过“+”来进行

添加到本地仓库： git commit -m "注释"
提交到远程服务器中： git push origin [分支名]
撤销操作：git reset --soft HEAD^


...]]></description><category></category></item><item><title><![CDATA[静态页面和动态页面]]></title><link>https://blog.youkuaiyun.com/weixin_48062613/article/details/118864342</link><guid>https://blog.youkuaiyun.com/weixin_48062613/article/details/118864342</guid><author>weixin_48062613</author><pubDate>Sat, 17 Jul 2021 23:26:41 +0800</pubDate><description><![CDATA[静态页面

在静态Web程序中，客户端使用浏览器连接到服务器上，使用HTTP协议发起一个请求，告诉服务器我现在需要得到哪个页面，所有的请求交给Web服务器，之后WEB服务器根据用户的需要，从静态页面的磁盘取出内容，通过Web服务器返回给客户端，客户端接收到内容之后经过浏览器渲染解析，得到显示的效果。
为了让静态web页面显示更加好看，利用JavaScript/AJAX等技术。但是这些特效都是在客户端上借助于浏览器展现给用户的，所以在服务器上本身并没有任何的变化。
静态web无法连接数据库；
静态web资源开]]></description><category></category></item><item><title><![CDATA[服务器渲染]]></title><link>https://blog.youkuaiyun.com/weixin_48062613/article/details/118725656</link><guid>https://blog.youkuaiyun.com/weixin_48062613/article/details/118725656</guid><author>weixin_48062613</author><pubDate>Wed, 14 Jul 2021 13:41:17 +0800</pubDate><description><![CDATA[一、浏览器端渲染
CSR：是Client Side Render简称，页面上的内容是由js文件进行渲染的，js文件在浏览器上运行，服务器返回一个html模板
过程：
用户发送请求，返回页面，此时页面是一个模板页面，通过js解析，通过接口去读数据，利用模板进行渲染，注入网站内容，不便于爬取
二、服务器端渲染
SSR：是Server Side Render简称，页面有服务器渲染生成，浏览器直接进行显示
过程：
用户发送请求，后端先获取一些数据，通过其渲染引擎利用模板进行页面的渲染，渲染好之后由后端将注入好的数据]]></description><category></category></item><item><title><![CDATA[React与Vue对比]]></title><link>https://blog.youkuaiyun.com/weixin_48062613/article/details/118094815</link><guid>https://blog.youkuaiyun.com/weixin_48062613/article/details/118094815</guid><author>weixin_48062613</author><pubDate>Mon, 21 Jun 2021 21:13:34 +0800</pubDate><description><![CDATA[1、组件化方面
模块化：是从代码的角度来进行分析的，即把一些课复用的代码，抽离未单个模块，便于项目的维护和开发。
组件化：是从UI界面的角度来进行分析的，即把一些可复用的UI元素，抽离为单独的组件。
组件化的好处：项目规模增大，组件会增多，组件化开发就可以很方便的将现有组件拼接成一个完整的页面。
Vue中的组件化：通过 .vue 文件来创建对应组件
​	.vue模板文件中的内容：

template 结构（内容）
script       行为
style         样式

React实现组件化：Re]]></description><category></category></item><item><title><![CDATA[Symbol]]></title><link>https://blog.youkuaiyun.com/weixin_48062613/article/details/117926580</link><guid>https://blog.youkuaiyun.com/weixin_48062613/article/details/117926580</guid><author>weixin_48062613</author><pubDate>Tue, 15 Jun 2021 18:11:43 +0800</pubDate><description><![CDATA[Symbol是六大数据类型之一，其余的有Undefined、Null、Boolean、Number、String。它是ES6中新增的，其实例时唯一不可变的。且不可以与 new 同时使用
基本用法
在使用时，需要初始化 Symbol() 。
let a = Symbol('a');
let b = Symbol('a');
console.log(a);// Symbol(a)
console.log(b);// Symbol(a)
console.log(a == b);// false 

创建全局对象
]]></description><category></category></item><item><title><![CDATA[JS常见报错信息]]></title><link>https://blog.youkuaiyun.com/weixin_48062613/article/details/117769101</link><guid>https://blog.youkuaiyun.com/weixin_48062613/article/details/117769101</guid><author>weixin_48062613</author><pubDate>Thu, 10 Jun 2021 11:40:54 +0800</pubDate><description><![CDATA[RangeError
范围错误，即当一个值不在其所允许的范围或者集合中。
当试图传递一个number参数给一个范围内不包含该number的函数时则会引发RangeError。当传递一个不合法的length值作为Array 构造器的参数创建数组，或者传递错误值到数值计算方法（Number.toExponential()，Number.toFixed() ，Number.toPrecision()），会出现RangeError。
ReferenceError
引用错误，即当引用一个不存在（被删除）的变量时引起的]]></description><category></category></item><item><title><![CDATA[严格模式的部分差异]]></title><link>https://blog.youkuaiyun.com/weixin_48062613/article/details/117668213</link><guid>https://blog.youkuaiyun.com/weixin_48062613/article/details/117668213</guid><author>weixin_48062613</author><pubDate>Mon, 07 Jun 2021 20:28:36 +0800</pubDate><description><![CDATA[在ESCMAScript5中增加严格模式。
目的：


消除代码运行的一些不安全之处，保证代码运行的安全；
提高编译器效率，增加运行速度；
为未来新版本的Javascript做好铺垫。

使用方式：
在代码头部增加 "use strict";
"use strict";
var x;
x=3;
console.log(x);


限制：

不能使用为声明的变量（在正常模式下，未声明就赋值的变量默认为全局变量）

"use strict";
x=3;


 x=3;
function aaa() {
   	]]></description><category></category></item><item><title><![CDATA[HTML和XML]]></title><link>https://blog.youkuaiyun.com/weixin_48062613/article/details/117625928</link><guid>https://blog.youkuaiyun.com/weixin_48062613/article/details/117625928</guid><author>weixin_48062613</author><pubDate>Sun, 06 Jun 2021 14:18:23 +0800</pubDate><description><![CDATA[HTML
HTML：超文本标记语言，是一种标记语言。它包括一系列标签，通过这些标签可以将网络上的文档格式统一，使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本，HTML命令可以说明文字，图形、动画、声音、表格、链接等。
特点：

简易性：采用超集方式，更加方便
可扩展性：增加标识符等
平台无关性：个人计算机或者MAC均可使用
通用性：可以被其他任何人、任何类型的电脑均可访问

XML
可扩展标记语言，标准通用标记语言的子集，简称XML。它可以用来标记数据、定义数据]]></description><category></category></item><item><title><![CDATA[vue组件通信方式 --父子组件通信]]></title><link>https://blog.youkuaiyun.com/weixin_48062613/article/details/115913719</link><guid>https://blog.youkuaiyun.com/weixin_48062613/article/details/115913719</guid><author>weixin_48062613</author><pubDate>Sun, 25 Apr 2021 20:37:35 +0800</pubDate><description><![CDATA[父子组件通信方式


子组件通过 props 属性来接受父组件的数据，然后父组件在子组件上注册监听事件，子组件通过 emit 触发事件来向父组件发送数据。




通过 ref 属性给子组件设置一个名字。父组件通过 $refs 组件名来获得子组件，子组件通过 $parent 获得父组件，这样也可以实现通信
使用 provider/inject，在父组件中通过 provider 提供变量，在子组件中通过 inject 来将变量注入到组件中。不论子组件有多深，只要调用了 inject 那么就可以注入 prov.]]></description><category></category></item><item><title><![CDATA[CSRF攻击]]></title><link>https://blog.youkuaiyun.com/weixin_48062613/article/details/115837355</link><guid>https://blog.youkuaiyun.com/weixin_48062613/article/details/115837355</guid><author>weixin_48062613</author><pubDate>Sun, 18 Apr 2021 18:40:51 +0800</pubDate><description><![CDATA[CSRF：跨站请求伪造攻击。
主要是攻击者诱导用户进入第三方网站，若用户在被攻击网站保存信息，攻击者窃取后，绕过后台向服务器执行操作。主要利用的是cookie在同源请求中可以被携带发送给服务器的特性。
类型：

Get型
Post型
链接型，如存在于 &lt;a&gt;&lt;/a&gt; 标签中

防护

同源检测：利用请求头中的refer或origin进行检测，但refer信息因为可以被伪造，所以安全性不高
token验证：在第一次请求后由服务器生成的随机数，保存在客户端中，再次请求时，请求体中包含该数]]></description><category></category></item><item><title><![CDATA[XSS攻击及预防]]></title><link>https://blog.youkuaiyun.com/weixin_48062613/article/details/115534143</link><guid>https://blog.youkuaiyun.com/weixin_48062613/article/details/115534143</guid><author>weixin_48062613</author><pubDate>Thu, 08 Apr 2021 23:23:30 +0800</pubDate><description><![CDATA[XSS
跨域脚本攻击，即在渲染DOM树的过程中发生了不在预期内执行的JS代码。访问劫持用户会话，插入恶意内容、重定向用户、使用恶意软件劫持用户浏览器、繁殖XSS蠕虫，甚至破坏网站、修改路由器配置信息等。
分类

持久性跨站：危害最大的一种，跨站代码存储在服务器（数据库）中
非持久性跨站：最常见的一种，网页中会存在嵌入好的恶意链接，用户点击后触发
DOM跨站：客户端的脚本程序可以通过DOM动态地检查和修改页面内容，它不依赖于提交数据到服务器端，而从客户端获得DOM中的数据在本地执行，如果DOM中的数据没有经过]]></description><category></category></item><item><title><![CDATA[ES6]]></title><link>https://blog.youkuaiyun.com/weixin_48062613/article/details/115458236</link><guid>https://blog.youkuaiyun.com/weixin_48062613/article/details/115458236</guid><author>weixin_48062613</author><pubDate>Tue, 06 Apr 2021 12:38:07 +0800</pubDate><description><![CDATA[ES6
一、Set
1. 基本用法
var arr= [1,2,2,3,4,5,3,4,1]
console.log(arr)
const s = new Set(arr)
console.log(s)
var next = Array.from(s)
console.log(next)


2.实例的属性和方法


属性

Set.prototype.constructor：构造函数，默认为Set函数
Set.prototype.size：返回Set实例的成员总数



方法


add(value)：添]]></description><category></category></item><item><title><![CDATA[节流与防抖]]></title><link>https://blog.youkuaiyun.com/weixin_48062613/article/details/115422673</link><guid>https://blog.youkuaiyun.com/weixin_48062613/article/details/115422673</guid><author>weixin_48062613</author><pubDate>Sat, 03 Apr 2021 23:48:37 +0800</pubDate><description><![CDATA[相同点
节流与防抖都是为了限制函数的执行频次，优化函数因触发过多响应速度跟不上出现的卡顿问题。
区别
&lt;div id="div"style="background-color: aqua;width: 500px;height: 500px;"&gt;&lt;/div&gt;
    &lt;script&gt;
        var newDiv = document.getElementById("div")
        newDiv.onmousemove = function(e){
 ]]></description><category></category></item><item><title><![CDATA[js复习]]></title><link>https://blog.youkuaiyun.com/weixin_48062613/article/details/115359402</link><guid>https://blog.youkuaiyun.com/weixin_48062613/article/details/115359402</guid><author>weixin_48062613</author><pubDate>Wed, 31 Mar 2021 20:05:51 +0800</pubDate><description><![CDATA[基本语法
JavaScript无类型语言：即声明变量时不需要指定类型
一、执行顺序
顺序执行，浏览器顺序加载
二、语法


对大小写敏感


语句末尾的分号可有可无


常量：const 常量名 = 常量值


变量：
全局变量：函数体外不定义的变量（var 变量名）
局部变量：函数体内部或语句块内定义的变量（let 变量名）


数据类型：

数字型：整数、浮点数
字符型：单引号或双引号括起来的一串内容
布尔型（逻辑型）：true、false
特殊类型：NULL、Underfined、NaN



运算符]]></description><category></category></item><item><title><![CDATA[请求方式]]></title><link>https://blog.youkuaiyun.com/weixin_48062613/article/details/115193756</link><guid>https://blog.youkuaiyun.com/weixin_48062613/article/details/115193756</guid><author>weixin_48062613</author><pubDate>Thu, 25 Mar 2021 08:42:04 +0800</pubDate><description><![CDATA[get：用于传输数据，会返回实体
post：用于传输，数据会被包含在请求中，比get请求安全一些
put：将用户请求更新到相应内容中
delete：用于删除数据
head：类似于get请求，没有返回内容，用户获取报头
options：允许客户端查看服务器性能，如，服务器支持的请求方式等
connect：可将连接改为管道方式的代理服务器

...]]></description><category></category></item><item><title><![CDATA[MVC与MVVC]]></title><link>https://blog.youkuaiyun.com/weixin_48062613/article/details/114987220</link><guid>https://blog.youkuaiyun.com/weixin_48062613/article/details/114987220</guid><author>weixin_48062613</author><pubDate>Thu, 18 Mar 2021 18:41:22 +0800</pubDate><description><![CDATA[MVC（Model-View-Controller）
模型–视图–控制器模式，该模式用于应用程序的分层开发

Model（模型）：存储数据的对象。带有逻辑，在数据变化时更新控制器
View（视图）：数据的可视化
Controller（控制器）：控制器作用与模型和视图上。控制数据流向模型对象，在数据变化时更新视图。使视图与模型分离开


MVVM（Model-View-ViewModel）
模型–视图–视图模型模式。是MVC的改进版

Model：代表数据模型，也可以在Model中定义数据修改和操作的业务逻辑]]></description><category></category></item><item><title><![CDATA[cookie、loacalStorage、SessionStorage]]></title><link>https://blog.youkuaiyun.com/weixin_48062613/article/details/114943484</link><guid>https://blog.youkuaiyun.com/weixin_48062613/article/details/114943484</guid><author>weixin_48062613</author><pubDate>Wed, 17 Mar 2021 18:44:12 +0800</pubDate><description><![CDATA[对比





Cookie
SessionStorage
LocalSTorage




传递方式
在服务器和浏览器间传递
不会自动把数据发给服务器，存储在本地
不会自动把数据发给服务器，存储在本地


大小
4KB
5MB
5MB


有效时长
可以设置有效时长
当前浏览器关闭前有效
始终有效


会话跟踪技术：
一、cookie
特点：

有服务器创建，保存在服务端
容量不超过4K

创建过程：

使用new创建cookie对象
设置cookie对象的生命周期
将cookie对象绑定到respons]]></description><category></category></item><item><title><![CDATA[nodejs的加密方式]]></title><link>https://blog.youkuaiyun.com/weixin_48062613/article/details/114784019</link><guid>https://blog.youkuaiyun.com/weixin_48062613/article/details/114784019</guid><author>weixin_48062613</author><pubDate>Sun, 14 Mar 2021 13:02:28 +0800</pubDate><description><![CDATA[nodejs的加密方式
一、加密算法
​	为了保证数据的安全性和防篡改，很多数据在传输中都进行了加密
​	加密可分为三大类：对称加密、非对称加密、摘要算法
二、对称加密
​	采用单钥密码系统的加密方法，同一个密钥可以同时作用信息的加密和解密。该方法称为对称加密，也称为单密钥加密。
​	主流有AES、DES，AES 是新一代的标准，速度快，安全级别更高。
1.AES：
​		共有五种加密方式：ECB、CBC、CTR、OCF、CFB
​			区别：ECB的只用一个密钥即可，比较简单，利于计算，其他的除了一个密钥]]></description><category></category></item><item><title><![CDATA[数据转化]]></title><link>https://blog.youkuaiyun.com/weixin_48062613/article/details/114745212</link><guid>https://blog.youkuaiyun.com/weixin_48062613/article/details/114745212</guid><author>weixin_48062613</author><pubDate>Sat, 13 Mar 2021 14:05:01 +0800</pubDate><description><![CDATA[数据类型
能转化为True
能转化为false的值




Boolean
TRUE
FALSE


String
任何非空字符
空字符


Object
任何对象
NULL


Number
任何非零数值
0和NULL



]]></description><category></category></item></channel></rss>