Day47-http和www基础2

news2024/11/25 16:27:17

Day47-http和www基础2

  • 1.Linux下实践观察HTTP协议通信过程
    • 1.1 DNS解析过程
    • 1.2 tcp三次握手
    • 1.3 发起HTTP请求报文阶段
    • 1.4 请求报文阶段
    • 1.5 响应报文部分
    • 1.6 分析URL,DNS解析
    • 1.7 HTTPS连接建立的过程
    • 1.8 请求报文阶段
      • 1.8.1 referer
      • 1.8.2 如何解决防盗链?
  • 2. HTTP资源
    • 2.1 MIME类型
    • 2.2 URL
    • 2.3 URI
    • 2.4 网站流量度量术语
      • 2.4.1 IP(Internet Protocol)
      • 2.4.2 PV(Page View)
      • 2.4.3 UV(独立访客)
    • 2.5 企业网站对IP、PV、UV的度量
      • 2.5.1 IP度量
      • 2.5.2 PV度量
      • 2.5.3 UV度量
  • 3. 网站并发连接:吞吐量
    • 3.1 同时最大访问数量
    • 3.2 如何测定自己网站的并发能力?
    • 3.3 例如:某网站的并发是5000
    • 3.4 扩展教学

1.Linux下实践观察HTTP协议通信过程

读者可以使用Linux下工具curl、wget、tcpdump(wireshark)、fiddler等工具根据原理实践查看通信的过程。这里以curl为例讲解如下:

[root@m01 scripts]# curl -v www.baidu.com  #<==使用-v参数或者wget命令—debug参数。
* About to connect() to www.baidu.com port 80 (#0)
* Trying 220.181.111.37...
* Connected to www.baidu.com (220.181.111.37) port 80 (#0)
> GET / HTTP/1.1        #<==请求行信息。
> User-Agent: curl/7.29.0  #<==以下两行为请求头部信息。
> Host: www.baidu.com
> Accept: */*
>	    #<==空行。
< HTTP/1.1 200 OK      #<==响应起始行信息。
< Server: bfe/1.0.8.18     #<==以下若干行为响应头部信息,这部分内容可以很多。
< Date: Wed, 15 May 2019 08:41:35 GMT
< Content-Type: text/html
< Content-Length: 2381
< Last-Modified: Mon, 23 Jan 2017 13:27:36 GMT
< Connection: Keep-Alive
< ETag: "588604c8-94d"
< Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
< Pragma: no-cache
< Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/
< Accept-Ranges: bytes
< 	    #<==空行。
<!DOCTYPE html>     #<==响应报文主体。
<!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=always name=referrer><link rel=stylesheet type=text/css href=http://s1.bdstatic.com/r/www/cache/bdorz/baidu.min.css><title>百度一下,你就知道</title></head> <body link=#0000cc>…省略若干行…<a href=http://www.baidu.com/duty/>使用百度前必读</a>&nbsp; <a href=http://jianyi.baidu.com/ class=cp-feedback>意见反馈</a>&nbsp;京ICP证030173号&nbsp; <img src=//www.baidu.com/img/gs.gif> </p> </div> </div> </div> </body> </html>
* Connection #0 to host www.baidu.com left intact
[root@web01 ~]# wget --debug www.jd.com
DEBUG output created by Wget 1.14 on linux-gnu.

URI encoding = “UTF-8”
Converted file name 'index.html' (UTF-8) -> 'index.html' (UTF-8)
Converted file name 'index.html' (UTF-8) -> 'index.html' (UTF-8)
--2021-07-08 15:09:53--  http://www.jd.com/

1.1 DNS解析过程

正在解析主机 www.jd.com (www.jd.com)... 60.9.5.3
Caching www.jd.com => 60.9.5.3

1.2 tcp三次握手

正在连接 www.jd.com (www.jd.com)|60.9.5.3|:80... 已连接。
Created socket 3.
Releasing 0x0000000000f22c70 (new refcount 1).

1.3 发起HTTP请求报文阶段

1.4 请求报文阶段

---request begin---
GET / HTTP/1.1
User-Agent: Wget/1.14 (linux-gnu)
Accept: */*
Host: www.jd.com
Connection: Keep-Alive

---request end---

1.5 响应报文部分

已发出 HTTP 请求,正在等待回应…

---response begin---
HTTP/1.1 302 Moved Temporarily
Server: nginx
Date: Thu, 08 Jul 2021 07:09:53 GMT
Content-Type: text/html
Content-Length: 138
Connection: keep-alive
Location: https://www.jd.com/
Access-Control-Allow-Origin: *
Timing-Allow-Origin: *
X-Trace: 302-1625728193408-0-0-0-0-0
Strict-Transport-Security: max-age=3600

---response end---
302 Moved Temporarily
Registered socket 3 for persistent reuse.
位置:https://www.jd.com/ [跟随至新的 URL]
Skipping 138 bytes of body: [<html>
<head><title>302 Found</title></head>
<body>
<center><h1>302 Found</h1></center>
<hr><center>nginx</center>
</body>
</html>
] done.

1.6 分析URL,DNS解析

URI content encoding = None
Converted file name 'index.html' (UTF-8) -> 'index.html' (UTF-8)
Converted file name 'index.html' (UTF-8) -> 'index.html' (UTF-8)
--2021-07-08 15:09:53--  https://www.jd.com/
Found www.jd.com in host_name_addresses_map (0xf22c70)
正在连接 www.jd.com (www.jd.com)|60.9.5.3|:443... 已连接。

1.7 HTTPS连接建立的过程

Created socket 4.
Releasing 0x0000000000f22c70 (new refcount 1).
Initiating SSL handshake.
Handshake successful; connected socket 4 to SSL handle 0x000000000100b8b0
certificate:
  subject: /C=CN/ST=beijing/L=beijing/O=BEIJING JINGDONG SHANGKE INFORMATION TECHNOLOGY CO., LTD./CN=*.jd.com
  issuer:  /C=BE/O=GlobalSign nv-sa/CN=GlobalSign RSA OV SSL CA 2018
X509 certificate successfully verified and matches host www.jd.com

1.8 请求报文阶段

---request begin---
GET / HTTP/1.1
User-Agent: Wget/1.14 (linux-gnu)
Accept: */*
Host: www.jd.com
Connection: Keep-Alive

---request end---
已发出 HTTP 请求,正在等待回应... 
---response begin---
HTTP/1.1 200 OK
Server: nginx
Date: Thu, 08 Jul 2021 07:09:53 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 125476
Connection: keep-alive
Vary: Accept-Encoding
Vary: Accept-Encoding
init-worker-firstscreen: off
init-worker-pageconfig: on
Expires: Thu, 08 Jul 2021 07:10:19 GMT
Cache-Control: max-age=30
ser: 133.227
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Age: 4
Via: http/1.1 ORI-CLOUD-JN2-MIX-17 (jcs [cRs f ]), http/1.1 HB-UNI-3-MIX-20 (jcs [cRs f ])
Access-Control-Allow-Origin: *
Timing-Allow-Origin: *
X-Trace: 200-1625728189381-0-0-0-2-2;200-1625728189424-0-0-0-95-95;200-1625728193426-0-0-0-1-1
Strict-Transport-Security: max-age=3600

---response end---
200 OK
Disabling further reuse of socket 3.
Closed fd 3
Registered socket 4 for persistent reuse.
URI content encoding = “utf-8”
长度:125476 (123K) [text/html]
正在保存至: “index.html”

100%[=======================================================================================================>] 125,476     --.-K/s 用时 0.03s   

2021-07-08 15:09:53 (4.60 MB/s) - 已保存 “index.html” [125476/125476])

要求录一个,发到B站。

日PV1一个亿架构。
1)浏览器缓存80%,2000万
2)CDN缓存98%,还剩2%*2000万=40万,CDN缓存条件,静态资源(图片,文件(html,css,js)、视频)。
3)搭建撑住40万PV架构。

请求头部分字段:

:authority: mercury.jd.com          #域名
:method: GET                        #请求方法
:path: /log.gif?t=exp_log.          #路径
:scheme: https                      #https请求
accept: image/avif,image/webp       #请求资源类型。
accept-encoding: gzip, deflate, br  #是否压缩,gzip压缩。web服务优化的核心*****。
accept-language: zh-CN,zh;q=0.9     #语言,可以根据请求语言给你放回想要的页面。
cache-control: no-cache             #是否缓存控制。Web服务优化的核心*****。
cookie: cud=4e56799c797eb92844f232  #客户端会话,session(服务器端)***** 
                                    扩展作业:cookie和session是啥,然后什么区别?
pragma: no-cache
referer: https://www.jd.com/        #referer 1)防盗链。2)统计广告效果。
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36  
                                    #客户机资源信息,PC还是手机,还是平板。APP访问专为手机准备。手机打开浏览器。
                                    #后台内容不变。前端,PC服务器和wap服务器。 Web优化核心。
Host: www.jd.com                    #主机头携带域名,nginx配置多虚拟主机。www.jd.com,a.jd.com,b.jd.com 对应三个站点目录.
                                    #如果没有携带主机头,服务器会把第一个虚拟主机的内容返回给客户端。
								 #限制ip直接访问。把nginx第一个虚拟主机留空或做限制访问。
Connection: Keep-Alive              #长链接。

1.8.1 referer

1.防盗链(实现防盗链)
1)www.oldboy.com/老男孩77-www.jpg
2)www.abc.com
​ [www课程讲解] ===>www.oldboy.com/老男孩77-www.mp4
​ xxx xxxx

1.8.2 如何解决防盗链?

nginx日志
/www.oldboy.com/老男孩77-www.jpg referer:www.abc.com
nginx配置:
凡是referer地址不是*.oldboy.com *.douyin *.toutiao.com,给他一个特定图片(禁止盗链)。

案例:平时CDN带宽200M,突然间1个小时增到1G,awk分析CDN日志,
1)访问地址.jpg 访问次数 大小 访问大小*访问次数(降序)
2)做防盗链。

2.统计付费广告价值

http响应头header

HTTP/1.1 200 OK                          ##协议 状态码 状态信息。
Server: nginx                            ##Web服务信息及版本,把版本取消了。***** oldboy/9.9
Date: Thu, 08 Jul 2021 07:09:53 GMT      
Content-Type: text/html; charset=utf-8   #请求类型
Content-Length: 125476                   #长度          
Connection: keep-alive                   #长连接
Vary: Accept-Encoding                    #Vary: Accept-Encoding 指定缓存服务器是否压缩
Expires: Thu, 08 Jul 2021 07:10:19 GMT   #缓存时间
Cache-Control: max-age=30                #缓存

指定“Vary: Accept-Encoding”标头,用一句话来说明它的意义,就是“告诉代理服务器缓存两种版本的资源:压缩和非压缩,这有助于避免一些公共代理不能正确地检测Content-Encoding标头的问题。”不过我想很多人都不理解这句话是什么意思,所以需要更详细的解释。请移步到:标头“Vary:Accept-Encoding”指定方法及其重要性分析

标头“Vary:Accept-Encoding”的指定方法

Nginx
gzip_vary on

2. HTTP资源

2.1 MIME类型

Web服务器会把通过Web传输的每个对象都打上名为MIME类型(MIME type)的数据格式标签。

2.2 URL

全称Uniform Resource Location,中文翻译为统一资源定位符

网址就是URL
http://img30.360buyimg.com/popWareDetail/jfs/t1/151567/5/19741/177525/60546726E28b0461e/b3bb88a14e8e5262.jpg

2.3 URI

全称Uniform Resource Identifier,中文翻译为统一资源标识符
URL是URI命名机制的一个子集
URI标识的更多,例如还有邮箱地址

http	://	www.etiantian.org/oldboy/index.html
http	://	www.oldboyedu.com/video/index.html

2.4 网站流量度量术语

2.4.1 IP(Internet Protocol)

IP(独立IP)即Internet Protocol,这里指【独立IP数】,独立IP数是指不同IP地址的计算机访问网站时被计算的总次数。独立IP数是衡量网站流量的一个重要指标。

一般一天内(00:00-24:00),相同IP地址的客户端访问网站页面只被计算为一次,记录独立IP的时间可为一天或一个月,目前通用的标准为“一天”。

100个学生,100个局域网,老男孩教育出口1个外网IP。独立IP算1个。
1300人,6个IP(随机),单IP连接数大200,封掉。。。
服务器端口有限的4000 65535
日独立IP100万。手机+电脑

2.4.2 PV(Page View)

一个页面就是一个PV ,58网站,一个一天平均PV,1ip对应20次页面。
日PV一个亿架构。500万IP,排名前60.

日PV 10万。
100个学生,访问百度,一个人打开3个页面。
IP是1,PV 100*3=300

2.4.3 UV(独立访客)

更接近真实的个人。一个手机,多数情况电脑一个人用。

UV(Unique Visitor)
UV(独立访客)即Unique Visitor,同一台客户端(PC或移动端)访问网站被计算为一个访客。
一天(00:00-24:00)内相同的客户端访问同一个网站只计算一次UV。

UV一般是以客户端Cookie等技术作为统计依据的,实际统计会有误差。
考虑到一台客户端电脑可能会有多人使用的情况,因此,UV(独立访客)实际上并不一定是独立的自然人访问。

2.5 企业网站对IP、PV、UV的度量

2.5.1 IP度量

1.分析所有Web服务器的访问日志信息,对IP地址段去重后计数,这是IT人员的基本计算手段。
2.在网站的每一个(所有)页面结尾,嵌入JS等统计程序代码,待用户加载网页后,IP即传给统计IP的服务器,这种方法一般被第三方统计公司或企业内部开发日志分析程序时使用。
用第三方大家比较信任的统计工具例如:谷歌的统计(GA),百度,腾讯统计(注册用户,申请一段JS代码)。
IP的统计方法简单、易用,因此,成为了多数网站衡量网站流量的重要指标之一。

2.5.2 PV度量

运维人员统计PV,wc -l access.log粗略的把日志内的行数当做PV数了。
为什么不准确?
在这里插入图片描述

PV统计:
1…html
2.oldboy.php?id=1
oldboy.php?id=2
3个PV。
ELK,HDOOP
淘宝每秒日志1G级别。
1)日志格式时候,不需要就不要记录了。
2)日志放入内存,定期放入磁盘。==》大数据平台分析。
2.在网站的每一个(所有)页面结尾,嵌入JS等统计程序代码,待用户加载网页后,IP即传给统计IP的服务器,这种方法一般被第三方统计公司或企业内部开发日志分析程序时使用。

用第三方大家比较信任的统计工具例如:谷歌的统计(GA),百度,腾讯统计(注册用户,申请一段JS代码)。
IP的统计方法简单、易用,因此,成为了多数网站衡量网站流量的重要指标之一。

2.5.3 UV度量

嵌入JS等统计程序代码代码统计。

3. 网站并发连接:吞吐量

3.1 同时最大访问数量

并发:单位时间段的连接数或者用户数。
1秒钟 网站连接数
10秒钟 网站连接数

统计当前网络连接数总量

[root@web01 html]# grep "^tcp" netstat.log |grep ESTABLISHED|wc -l
101

[root@web01 html]# grep "^tcp" netstat.log |awk '{++S[$NF]}END{for(k in S)print S[k],k}'|sort -rn
105 TIME_WAIT
101 ESTABLISHED
55 FIN_WAIT2
7 FIN_WAIT1
5 SYN_RECV
5 LISTEN
3 LAST_ACK
1 CLOSING

3.2 如何测定自己网站的并发能力?

压力测试,tcpcopy,http_load,loadrunner,webbanch

思想:网站上线的时候如果不做压测带来的问题。
5台服务器上线了。
压测时候,获得最大值,一边压测一边优化瓶颈的服务器,获得并发链接最大值。
压测的过程和结果,写成专业的报告,发给领导。

3.3 例如:某网站的并发是5000

意味着:单位时间内(理解为1秒或数秒内),正在处理的连接数,正在建立的连接数。加起来一共是5000个。
下面是老外对网站并发数计算公式及参考说明:
Request Per Second+Simultaneous Browser connections+Thinking Time=Concurrent User 
其中:

  • Concurrent User表示网站并发用户总数。
  • Request Per Second [RPS]表示每秒请求数(吞吐量)。
  • Simultaneous Browser connections [SBC] 表示并发浏览连接数。
  • Thinking Time表示平均用户思考时间。

工作场景:统计并发数的基本方法
1、统计当下时刻的linux的网络连接数并发,

netstat -an|grep -i " est "|wc -l

2、nginx web层active status。

3.4 扩展教学

1)测试磁盘存储性能方法
连续的向磁盘中进行读写大文件的测试方法

dd if=/dev/zero of=/tmp/test01.bin bs=1k count=10000

随机读取
#fio软件安装下载(需要借助epel源)
链接: http://blog.csdn.net/hshl1214/article/details/49762149
链接: http://www.cnblogs.com/lpfuture/p/6054882.html

2)工作场景统计并发数的基本方法
统计当下时刻的Linux的网络连接数并发

# netstat -an|grep -i “est”|wc -l
# ss -ant|grep -ic est

网站页面统计方法
Nginx web层active status
无数据,不说话
链接: https://alexa.chinaz.com/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1522927.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【机器学习】分类模型的评价方法

&#x1f33b;个人主页&#xff1a;相洋同学 &#x1f947;学习在于行动、总结和坚持&#xff0c;共勉&#xff01; #学习笔记# 目录 一、混淆矩阵&#xff08;Confusion Matrix&#xff09; 二、评估指标&#xff08;Evaluation metrics&#xff09; 1.正确率(accuracy) …

HCIP—OSPF课后练习一

本实验模拟了一个企业网络场景&#xff0c;R1、R2、R3为公司总部网络的路由器&#xff0c;R4、R5分别为企业分支机构1和分支机构2的路由器&#xff0c;并且都采用双上行方式与企业总部相连。整个网络都运行OSPF协议&#xff0c;R1、R2、R3之间的链路位于区域0&#xff0c;R4与R…

数据分析-Pandas的直接用Matplotlib绘图

数据分析-Pandas的直接用Matplotlib绘图 数据分析和处理中&#xff0c;难免会遇到各种数据&#xff0c;那么数据呈现怎样的规律呢&#xff1f;不管金融数据&#xff0c;风控数据&#xff0c;营销数据等等&#xff0c;莫不如此。如何通过图示展示数据的规律&#xff1f; 数据表…

Swift 面试题及答案整理,最新面试题

Swift 中如何实现单例模式&#xff1f; 在Swift中&#xff0c;单例模式的实现通常采用静态属性和私有初始化方法来确保一个类仅有一个实例。具体做法是&#xff1a;定义一个静态属性来存储这个单例实例&#xff0c;然后将类的初始化方法设为私有&#xff0c;以阻止外部通过构造…

[java基础揉碎]多态参数

多态参数 方法定义的形参类型为父类类型&#xff0c;实参类型允许为子类类型 例子: 定义一个员工类, 有名字和工资两个属性, 有年工资的方法 定义一个普通员工继承了员工类 , 重写了年工资的方法 定义一个经理类, 也继承了员工类, 同时经理多以了一个奖金的属性, 重写的年…

Ubuntu 如何安装 Beyond Compare?

Ubuntu20.04安装Beyond Compare 4.3.7 一、官网下载方式一&#xff1a;方法二&#xff1a;使用 .deb 包安装 二、安装相关依赖和bcompare三、破解常见错误解决方法 ) 文件比较工具Beyond Compare是一套由Scooter Software推出的文件比较工具。主要用途是对比两个文件夹或者文件…

JUnit 面试题及答案整理,最新面试题

JUnit中的断言&#xff08;Assert&#xff09;有哪些类型&#xff1f; JUnit提供了多种断言类型来帮助测试代码的正确性。常见的断言类型包括&#xff1a; 1、assertEquals&#xff1a; 用于检查两个值是否相等。如果不相等&#xff0c;测试失败。 2、assertTrue和assertFal…

监控系统prometheus+grafana+发送告警信息

1、基础环境准备两台或更多的主机 2、关闭selinux vi /etc/selinux/config&#xff0c;修改SELINUX的值为disabled 3、关闭防火墙 systemctl disable firewalld systemctl stop firewalld 4、prometheus官网下载 https://prometheus.io/download/ 5、grafana官网下载 https…

HTML语法基础

1.HTML是什么 HTML是超文本标记语言&#xff0c;标准通用标记语言下的一个应用。 “超文本”就是指页面内可以包含图片、链接&#xff0c;甚至音乐、程序等非文字元素。 超文本标记语言的结构包括“头”部分&#xff08;英语&#xff1a;Head&#xff09;、和“主体”部分&…

如何在“Microsoft Visual Studio”中使用OpenCV编译应用程序

返回目录&#xff1a;OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 前一篇&#xff1a;OpenCV4.9.0在windows系统下的安装 后一篇&#xff1a; 警告&#xff1a; 本教程可以包含过时的信息。 我在这里描述的所有内容都将适用于 OpenCV 的C\C接口。我首先假…

在centos8中部署Tomcat和Jenkins

参考链接1&#xff1a;tomcat安装和部署jenkins_jenkins和tomcat-CSDN博客 参考链接2&#xff1a;--配置开机启动tomcat文件 x​​​​​​超详细&#xff1a;Centos8安装Tomcat并配置开机自动启动_centos设置tomcat开机自启-CSDN博客文章浏览阅读4.4k次&#xff0c;点赞4次&…

爱奇艺 CTR 场景下的 GPU 推理性能优化

01 背景介绍 GPU 目前大量应用在了爱奇艺深度学习平台上。GPU 拥有成百上千个处理核心&#xff0c;能够并行的执行大量指令&#xff0c;非常适合用来做深度学习相关的计算。在 CV&#xff08;计算机视觉&#xff09;&#xff0c;NLP&#xff08;自然语言处理&#xff09;的模型…

判断一个时间序列中每个元素的年份是否为闰年

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 判断一个时间序列中 每个元素的年份是否为闰年 Series.dt.is_leap_year 选择题 以下代码的输出结果中正确的是? import pandas as pd ts pd.Series(pd.date_range("2024-03-17",…

ARM 汇编指令:(七) STM/LDM多寄存器加载/多存储指令

目录 一.四种栈 1.满增栈&#xff1a;进栈&#xff08;先移动指针再入栈&#xff0c;指针往地址增大的方向移动&#xff09;&#xff1b;出 栈&#xff08;先出栈&#xff0c;栈指针往地址减小的地方移动&#xff09;。 2.满减栈&#xff1a;进栈&#xff08;先移动指针再入…

android studio设置flutter和dart的sdk配置

提示没有配置dart sdk的时候&#xff0c;其实只需要配置一下flutter的sdk就可以了&#xff0c;因为flutter的安装包里面包含了dart的sdk&#xff1a; 按照提示选中这个flutter的安装包路径就可以了&#xff1a; 并且需要开启windows的开发者开关&#xff1a;start ms-settings:…

【代码随想录】【回溯算法】补day25:组合总和,电话号码的总和

组合总和 def backtracking2(self, n: int, k: int, startindex: int, targetsum, sum):# 递归的终止条件if sum > targetsum:returnif len(self.path) k and sumtargetsum:self.result.append(self.path[:]) # 结果拷贝return self.result# for i in range(startindex,n1…

Java Web项目—餐饮管理系统Day06-套餐管理(一)

文章目录 1. 需求分析与实体类准备2. 依据菜品分类或者名字进行查询的请求(需求B)3. 新增套餐 1. 需求分析与实体类准备 如上图为新增套餐的界面, 它包含了套餐的一些基本信息, 例如名称、价格等, 同时还有套餐分类(因此这里需要一个查询所有套餐分类的请求处理方法, 需求A). 以…

layui table列表重载后保持进度条位置不变

使用layui的table表格组件时&#xff0c;当我们操作了某行的修改后&#xff0c;刷新了页面&#xff0c;进度条则跳回到最上面。 除了layui高版本应该内置有方法解决了此问题&#xff0c;但是低版本需要另外想办法解决。 具体解决方式如下&#xff1a; 1.在编辑操作成功前&am…

量子磁场测量“碰上”脑科学,未磁科技无创脑功能成像系统研发成功

从微观的神经元活动到宏观的认知行为&#xff0c;脑科学探索着人类最神秘、最复杂的领域之一。在这个过程中&#xff0c;科研人员、医生和创业者们扮演着至关重要的角色。他们不仅致力于揭示大脑的奥秘&#xff0c;更将科研成果转化为实际应用&#xff0c;推动脑科学领域的进步…

【SQL Server】实验七 数据完整性

1 实验目的 掌握实体完整性、参照完整性和用户自定义完整性约束的创建方法。掌握完整性约束的运行检查机制。掌握参照完整性的级联删除和修改方法。掌握正确设计关系模式完整性约束的方法。 2 实验内容 2.1 掌握实体完整性约束的创建和使用方法 创建表时定义由一个属性组成…