***http 和 https 区别
1.https协议需要到ca(电子认证服务,是指为电子签名相关各方提供真实性、可靠性验证的活动。)申请证书,一般免费证书较少,因而需要一定费用。
2.http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。(非对称加密)
3.http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4.http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
***非对称加密和对称加密的区别
1、加密和解密过程不同
对称加密过程和解密过程使用的同一个密钥,加密过程相当于用原文+密钥可以传输出密文,同时解密过程用密文-密钥可以推导出原文。但非对称加密采用了两个密钥,一般使用公钥进行加密,使用私钥进行解密。
2、加密解密速度不同
对称加密解密的速度比较快,适合数据比较长时的使用。非对称加密和解密花费的时间长、速度相对较慢,只适合对少量数据的使用。
3、传输的安全性不同
对称加密的过程中无法确保密钥被安全传递,密文在传输过程中是可能被第三方截获的,如果密码本也被第三方截获,则传输的密码信息将被第三方破获,安全性相对较低。
非对称加密算法中私钥是基于不同的算法生成不同的随机数,私钥通过一定的加密算法推导出公钥,但私钥到公钥的推导过程是单向的,也就是说公钥无法反推导出私钥。所以安全性较高。
***实现一定时间内事件只触发一次
$(function(){
vartimeoutflag = null;
$(#inputAddress1).click(function() {
if(timeoutflag != null){
clearTimeout(timeoutflag);
}
timeoutflag=setTimeout(function(){
dosomething();//此处是一个会请求远程的ajax 异步操作;
},500);
});
functiondosomething(){
alert(1);
}
});
***输入 url 到网页显示的具体过程
1、输入网址2、DNS解析3、建立tcp连接4、客户端发送HTPP请求5、服务器处理请求 6、服务器响应请求7、浏览器展示HTML8、浏览器发送请求获取其他在HTML中的资源。
***js 怎么解析的
1:全局检索。查看是否有语法错误--->语言分析
2:创建全局对象GO(global)--->预编译
3:执行每行代码 对变量进行赋值 等操作 --->解析执行 ---> 变量一旦创建;不能删除,除非关闭程序。(window对象在打开页面时候创建;先创建window在语言分析)
***3 次握手
第一次
第一次握手:建立连接时,客户端发送syn包(seq=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
第二次
第二次握手:服务器收到syn包,必须确认客户端的SYN(ack=j+1),同时自己也发送一个SYN包(seq=k),即SYN+ACK包,此时服务器进入SYN_RECV状态。
第三次
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
完成三次握手,客户端与服务器开始传送数据
***data-name、data-age 等 HTML5 自定义属性
data-*实际上上就是data-前缀加上自定义的属性名,使用这样的结构可以进行数据存放。使用data-*可以解决自定义属性混乱无管理的现状。
data-*有两种设置方式,可以直接在HTML元素标签上书写
<divdata-age="24">
Click Here
</div>
data-age就是一种自定义属性,当然我们也可以通过JavaScript来对其进行操作,HTML5中元素都会有一个dataset的属性,这是一个DOMStringMap类型的键值对集合
var test = document.getElementById( est);
test.dataset.my = Byron;
***script 是什么(脚本)
短小的、用来让计算机自动化完成一系列工作的程序
在网站前端编程的语境下,脚本通常是指在浏览器里运行的小程序,就像剧本一样,它可以用来控制网页上的各种图文该怎么表演给你看
***defer 和 async 的区别
没有 defer 或 async,浏览器会立即加载并执行指定的脚本,“立即”指的是在渲染该 script 标签之下的文档元素之前,也就是说不等待后续载入的文档元素,读到就加载并执行。
1.有 async,加载和渲染后续文档元素的过程将和 script.js 的加载与执行并行进行(异步)。
2.有 defer,加载后续文档元素的过程将和 script.js 的加载并行进行(异步),但是 script.js 的执行要在所有元素解析完成之后,DOMContentLoaded 事件触发之前完成。
***DOM 事件流的顺序
DOM事件流包括三个阶段。
事件捕获阶段
处于目标阶段
事件冒泡阶段
事件冒泡即事件开始时,由最具体的元素接收(也就是事件发生所在的节点),然后逐级传播到较为不具体的节点。
事件捕获的概念,与事件冒泡正好相反。它认为当某个事件发生时,父元素应该更早接收到事件,具体元素则最后接收到事件。
<!DOCTYPE html>
<htmllang="en">
<head>
<metacharset="UTF-8">
<title>Event Bubbling</title>
</head>
<body>
<buttonid="clickMe">Click Me</button>
</body>
</html>
然后,我们给button和它的父元素,加入点击事件
varbutton = document.getElementById(clickMe);
button.onclick = function() {
console.log(1. You click Button);
};
document.body.onclick = function() {
console.log(2. You click body);
};
document.onclick = function() {
console.log(3. You click document);
};
window.onclick = function() {
console.log