浏览器中的preflight请求-预检请求

什么是preflight请求?

preflight,一个cors预检请求,属于options请求。该请求会在浏览器认为即将要执行的请求可能会对服务器造成不可预知的影响时,由浏览器自动发出。
利用预检请求,浏览器能够知道当前的服务器是否允许执行即将要进行的请求,只有获得了允许,浏览器才会真正执行接下来的请求。
所以,总结有几点:

  • 浏览器自动发出该请求,不需要用户干预
  • 该请求发生在用户发送的请求之前,只有预检请求通过,用户发送的请求才能发送到服务器,否则抛出CORS错误。

prefilght触发条件

preflight预检请求属于cors规范的一部分,是一种服务器验证机制。目前所有浏览器都实现了该规范,但是不免有些浏览器会对规范内容进行扩充。但是必须实现的规范是:只有以下条件满足的情况下才不会发送预检请求,否则会在发送用户请求之前发送预检请求,以免在获得允许之前对服务器产生不可预知的影响。
条件有:

  1. 请求方法限制

只能使用GET、POST方法

  1. 请求头限制

只能包含九种请求头:

  • Accept
  • Accept-language
  • Content-Language
  • Content-Type
  • DPR
  • Downlink
  • Save-Data
  • Viewport-Width
  • Width
  1. Content-type限制

只能包含三种类型:

  • text/plain
  • multipart/form-data
  • application/x-www-form-urlencoded
  1. XMLHttpRequestUpload对象限制

该对象没有注册任何事件监听器

  1. ReadableStream对象限制

请求中不能使用ReadableStream对象

如果以上条件有一条不满足,浏览器则会自动发起预检请求

配置preflight请求

浏览器自动发送的预检请求,一般采用三个字段来表示:

  • Origin:表示当前请求的访问来源(域名)
  • Access-Control-Request-Headers:告知服务器实际请求所携带的自定义首部字段

js如何在一个日期上面加上几小时 几分钟 几秒

1. 打开任一浏览器,本文以chrome浏览器为例,打开后,按F12,进入开发者模式,点击【Console】标签

2. 在【Console】页签中,书写js代码,首先将当前日期时间赋值给一个js变量curTime,代码如下:

var curTime = new Date();

3.在当前时间curTime变量上加上1个小时,并将结果赋值给addHour变量,代码如下:

var addHour = curTime.setHours(curTime.getHours() 1);

4.从运行效果可以看到,addHour变量的值不是一个日期时间格式,需要使用new Date(),将其转换为日期时间格式,代码如下:

new Date(addHour);

5.在当前时间curTime变量上加上10分钟,再转换为日期时间格式,代码如下:

new Date(curTime.setMinutes(curTime.getMinutes() 10));

6.在当前时间curTime变量上加上10秒钟,再转换为日期时间格式,代码如下:

new Date(curTime.setSeconds(curTime.getSeconds() 10));

7.在当前时间curTime变量上加上1分40秒,其实也就相当于加100秒,代码如下:

new Date(curTime.setSeconds(curTime.getSeconds() 100));

+new Date()是什么意思

js在某个数据类型前使用‘+’,这个操作目的是为了将该数据类型转换为Number类型,如果转换失败,则返回NaN;
例如:

+'2'+1 // 3
+[1]   // NaN

+new Date() 会调用Date.prototype 上面的 valueOf方法,根据
new Date().getTime() === new Date().valueOf() //true
下面的例子返回效果等同:

      console.log(+new Date());
      console.log

nginx启用proxy cache 代理缓存

nginx启用proxy cache 代理缓存

nginx.conf中的
http {
下面加

proxy_cache_path /data/nginxcache levels=1:2 keys_zone=my_cache:500m max_size=10g inactive=30d use_temp_path=off;

某个站点的配置文件中增加以下配置:

location / {

proxy_cache my_cache;
proxy_cache_revalidate on;
#proxy_cache_valid 200 206 304 301 302 30d;
proxy_cache_valid any 30d;
proxy_ignore_headers "Set-Cookie";
proxy_ignore_headers "Expires";
#proxy_ignore_headers "Age";
proxy_cache_key …

                

ubuntu(linux)系统死机(无响应)后,如何强制重启.

ubuntu(linux)系统死机后,如何强制重启:

按 Alt+SysRq+B可强制重启.

有的电脑需要按Fn键,即 Fn+Alt+SysRq+B.

注:sysrq键一般和prtsc(print screen)键是一个.

如果你按Fn+Alt+SysRq+B不起作用,请按以下做:

先按Fn+Alt+SysRq,

保持按住Alt,再松开SysRq+Fn,再按B键.

即可.

为了更安全的做法是

按住Fn+Alt+SysRq,再依次按下:REISUB键.(同步 磁盘,防止数据丢失及损坏)

参考 :

https://www.cnblogs.com/reid21/p/9507366.html?ivk_sa=1024320u

https://www.howtogeek.com/119127/use-the-magic-sysrq-key-on-linux-to-fix-frozen-x-servers-cleanly-reboot-and-run-other-low-level-commands/

https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html

https://unix.stackexchange.com/questions/569728/sysrqb-boot-not-working-but-o-turning-off-is

 

        

什么是 React JS 以及为什么要使用它?

React JS本质上是一个开源 JavaScript 库,用于 Web 开发过程中,用于在单页应用程序上创建交互式和动态元素。

 

 

ReactJS是做什么用的?

 

 

在2013年推出ReactJS之前,开发人员使用“VanillaJavaScript”或使用较少基于UI的React前辈(如jQuery)手动创建UI(用户界面)。然而,这在开发中消耗了大量时间,甚至为错误和错误创造了空间。

 

 

但是,ReactJS的开发是为了消除这些障碍,让开发人员的UI开发变得轻松简单。

 

 

除了提供可重用的库代码外,React还包含两个主要功能,VirtualDOM和JSX,它们吸引了JavaScript开发人员,使他们更频繁地使用ReactJS。

 

 

ReactJS是前端还是后端?

 

 

ReactJS是一个基于组件的前端库。它被用作客户端工具来创建用户将在浏览器上看到并与之交互的动态UI,从而使React成为流行的前端JavaScript库。

 

 

ReactJS和JavaScript是一样的吗?

 

 

JavaScript是一种编程语言。它是互联网上任何网站的一种关键元素。同时,ReactJS基本上是一个借助JavaScript编写的框架。

 

 

ReactJS和JavaScript都是相互关联的。虽然JavaScript本质上是一种脚本语言,但ReactJS是一种可以使用JavaScript创建一流网站和应用程序的工具。

 

 

简而言之,ReactJS允许您使用JavaScript来制作网站和应用程序。它是一种工具箱。但是,要充分利用ReactJS,了解JavaScript是必不可少的。因此,请确保为您的项目聘请熟练的React开发人员。

 

 

React使用哪种语言?

 

WebContainers 简介:在浏览器中本地运行 Node.js

几年前,我们意识到网络正在走向一个关键的拐点。WebAssembly 和新功能 API的出现使得编写一个基于 WebAssembly 的操作系统似乎成为可能,其功能强大到足以运行 Node.js,完全在您的浏览器中。我们设想了一个比本地环境更快更安全、更一致的卓越开发环境,无需设置本地环境即可实现无缝代码协作。

这听起来有些牵强。但是,如果网络现在为平面设计师视频编辑富文档编辑运行完整的环境,我们想知道:开发人员最终是否可以使用网络来构建网络?

我们决定试一试。我们期待最好的,也期待最坏的。两年后(时间过得真快😅),结果已经形成了意想不到的惊人结果。

今天我们很高兴地宣布WebContainers

WebContainers 允许您创建全栈 Node.js 环境,该环境可在几毫秒内启动并立即在线和链接共享——只需单击一下。该环境加载了 VS Code 强大的编辑体验、完整的终端、npm 等。它也