1.同源策略
同源策略:限制一段脚本与另外一个源的交互,同源即:协议、域名、端口都相同;
目的:为了保证用户信息的安全,防止恶意的网站窃取数据。例如:如果没有同源策略,A 网站登录之后,B网站可以读取到A网站的cookie,然后模拟A进行各种操作,互联网就毫无安全可言了。
如何进行跨域请求:
CORS跨域资源共享:克服了AJAX只能同源使用的限制
//简单请求(get、post)
Access-Control-Allow-Origin: 允许跨域的域名\
Access-Control-Allow-Credentials: true
//非简单请求(put等)除了上面俩个头还要额外添加
Access-Control-Request-Method:接下来会用到的请求方式,比如PUT
Access-Control-Request-Headers:会额外用到的头信息
2. http的请求过程及原理(借鉴)
http请求过程:
-
首先由DNS服务解析域名,获取到域名对应的ip地址。
-
确保可靠,TCP进行三次握手(发送端将标有syn的数据包发送给接收端,接收端收到数据包,并将标有syn/ack的数据包发送给接收端,最后接收端将处理过的ack数据包发送给接收端,完成三次握手。原理:数据包通过ip协议中转传送)
-
建立tcp连接后,发送http请求
-
服务器响应http请求,将html文件发送给客户端
-
客户端解析html文件并请求html中的js、css、图片等文件
-
客户端解析将页面呈现出来
3.http 与 https的区别
-
https 需要到CA上面申请证书
-
http是超文本传输协议,信息是明文传输,https是具有安全性的ssl加密传输
-
监听端口不同
-
http是无状态的(可通过cookie记录登录状态),https是http+ssl加密,TLS / SSL是有状态的:Web服务器和客户端(浏览器)缓存包含加密密钥的会话
4.http1.x与http2.0的区别
-
http2采用二进制进行格式解析,http1采用文本解析,文本解析要应对各种文本格式兼容,二进制格式解析速度更快
-
http2可以多路复用,连接共享,同时请求多个文件,http1一次只能请求一个文件
-
http2支持服务端push
5.websocket
websocket是一种在单个tcp连接上进行双全工通信的协议,允许客户端和服务端进行双向通信,连接一次可以一直保持连接状态。
6.ajax解决浏览器缓存
-
在 Ajax 发送请求前加上 anyAjaxObj.setRequestHeader("If-Modified-Since","0")。
-
在 Ajax 发送请求前加上 anyAjaxObj.setRequestHeader("Cache-Control","no-cache")。
-
在 URL 后面加上一个随机数:"fresh=" + Math.random();。
-
在 URL 后面加上时间戳:"nowtime=" + new Date().getTime();。