1.网络基础知识复习

150 阅读2分钟

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请求过程:

  1. 首先由DNS服务解析域名,获取到域名对应的ip地址。

  2. 确保可靠,TCP进行三次握手(发送端将标有syn的数据包发送给接收端,接收端收到数据包,并将标有syn/ack的数据包发送给接收端,最后接收端将处理过的ack数据包发送给接收端,完成三次握手。原理:数据包通过ip协议中转传送)

  3. 建立tcp连接后,发送http请求

  4. 服务器响应http请求,将html文件发送给客户端

  5. 客户端解析html文件并请求html中的js、css、图片等文件

  6. 客户端解析将页面呈现出来

3.http 与 https的区别

  1. https 需要到CA上面申请证书

  2. http是超文本传输协议,信息是明文传输,https是具有安全性的ssl加密传输

  3. 监听端口不同

  4. http是无状态的(可通过cookie记录登录状态),https是http+ssl加密,TLS / SSL是有状态的:Web服务器和客户端(浏览器)缓存包含加密密钥的会话

4.http1.x与http2.0的区别

  1. http2采用二进制进行格式解析,http1采用文本解析,文本解析要应对各种文本格式兼容,二进制格式解析速度更快

  2. http2可以多路复用,连接共享,同时请求多个文件,http1一次只能请求一个文件

  3. http2支持服务端push

5.websocket

websocket是一种在单个tcp连接上进行双全工通信的协议,允许客户端和服务端进行双向通信,连接一次可以一直保持连接状态。

6.ajax解决浏览器缓存

  1. 在 Ajax 发送请求前加上 anyAjaxObj.setRequestHeader("If-Modified-Since","0")。

  2. 在 Ajax 发送请求前加上 anyAjaxObj.setRequestHeader("Cache-Control","no-cache")。

  3. 在 URL 后面加上一个随机数:"fresh=" + Math.random();。

  4. 在 URL 后面加上时间戳:"nowtime=" + new Date().getTime();。