Skip to content

7 层协议

7层协议7层协议协议

系统性能指标

QPS:Queries Per Second TPS:Transactions Per Second TPS: Response-time 并发数 系统同时处理的 request/事务数 吞吐量 一般取平均响应时间 单位时间内处理的请求量(通常由QPS与并发数决定); pv 页面被浏览的次数 即Page View,网站浏览量,指页面浏览的次数,用以衡量网站用户访问的网页数量

UV即Unique Visitor,独立访客数,指一天内访问某站点的人数,以cookie或者Token为依据。

VV即Visit View,访客访问的次数,用以记录所有访客一天内访问网站的次数。 访客的访问次数,

cpu密集型 线程数=cpu核数+1

i/o密集型 单核 1+(i/o耗时 / cpu耗时) 多核 (1+(i/o耗时 / cpu耗时))*核数

刷新 dns

ipconfig /flushdns

Vue 报错 error:0308010C:digital envelope routines::unsupported

set NODE_OPTIONS=--openssl-legacy-provider

性能指标

高并发高性能高可用
指标qps(每秒点击率)响应时间4 个 9(99.99)
方案负载均衡
流量漏斗
cdn
池化
缓存
异步
i/o(网络、数据、文件)
分库分表
集群
熔断
降级
限流

Termux

termux-setup-storage

termux-change-repo

postman

host = pm.collectionVariables.get("host");

 
console.log(host)


username = pm.collectionVariables.get("username");

console.log(username)

password = pm.collectionVariables.get("password");

console.log(password)





 
 
const postRequest = {
  url: host+'/login',
  method: 'POST',
  header: {
    'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',

  },
  body:  "username="+username+"&password="+password+"&rememberMe=true"

};
pm.collectionVariables.unset("token");
pm.sendRequest(postRequest, (error, response) => {
    pm.request.headers.remove("X-TOKEN");
    if(!response||response['code']!==200||response['status']!=='OK'){
        console.info(response)
        return
    }
    if(error){
        console.error(error)
        return
    }

 data=response.json()['data']
 if(!data){
    return
 }
 
 token =data['token']
 if(!token){
    return
 }
  console.log('token =>',token)
pm.request.headers.add({
  key: "X-TOKEN",
  value: token
});
     
     
});

cdn

https://www.bootcdn.cn/

http://staticfile.org/

https://gtmetrix.com/

nginx

用root属性指定的值是要加入到最终路径中的,匹配条件会拼接到路径中

用alias属性指定的值不需要加入到最终路径中

限流模块

limit_req_zone 用来限制单位时间内的请求数,即速率限制,采用的漏桶算法 "leaky bucket"。 limit_req_conn 用来限制同一时间连接数,即并发限制

abs

abs -n 1000 -c 1000 -T "application/json" -H "application/x-www-form-urlencoded;charset=UTF-8" "xxxxxxx"

mqtt

qos 0 高频且不那么重要的数据,比如传感器数据,周期性更新,即使遗漏几个周期的数据也可以接受

qos 1 一些较为重要的数据,比如下达关键指令、更新重要的有实时性要求的状态等。

qos 2 既可以保证消息到达,也可以保证消息不会重复,

Qos Quality of Service

Last Will

retain

sendBeacon

navigator.sendBeacon('submit.php', data);

taskkill /f /t /im nginx.exe

文档网站生成

npm i docsify-cli -g

docsify init ./help

cd help

docsify serve .

Quick Reference

https://quickref.hestudio.net/

mqtt http

MQTT(Message Queuing Telemetry Transport)

http (Hypertext Transfer Protocol)

1、通信协议类型不同,MQTT是一个轻量级的发布/订阅系统,而HTTP是无状态的请求/响应协议。

2、数据传输效率不同,MQTT在网络带宽较低的环境中表现更好,而HTTP在传统的Web应用中更为普遍。

3、消息传递机制不同,MQTT支持离线消息和遗嘱消息,HTTP没有这些机制。

4、头信息大小不同,MQTT的头信息相对较小,而HTTP的头信息较大。

5、支持的功能不相同,HTTP支持更丰富的功能如内容协商、缓存等。

6、应用场景不同,MQTT适合物联网和移动应用,HTTP则广泛应用于传统的Internet应用。

rpc http

HTTP接口使用基于HTTP协议的URL传参调用,一种协议

RPC接口则基于远程过程调用,一种方法

单位换算


function transferNumber(n) {
  const unit = [10000, 1];
  const unit_check = [n >= 10000, n >= 0 && n < 10000];

  const unit_value = unit_check.findIndex((element) => element) || 1;
  console.log(unit_value);

  return (n / unit[unit_value - 1]).toFixed(2);
}

badge

npm install -g badge-maker

项目代码统计

cloc

https://github.com/AlDanial/cloc

axios导出

import { axios } from '@/utils/request'
import { message } from 'ant-design-vue'

export async function exportRcp (parameter, name) {
 message.config({
   maxCount: 1
 })
 await axios({
   url: 'xxxxx',
   method: 'post',
   params: parameter,
   responseType: 'blob',
   transformRequest: [function (data) {
     message.loading('请求中,请稍后...', 1)
     return data
   }]
 }).then(res => {
   setTimeout(() => {
     const blob = new Blob([res], {
       type:
           'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8'
     })
     const a = document.createElement('a')
     const href = window.URL.createObjectURL(blob)
     a.href = href
     a.download = (name) + '.xls'
     document.body.appendChild(a)
     a.click()
     document.body.removeChild(a)
     window.URL.revokeObjectURL(href)
   }, 1000)
 }).catch(res => {
   setTimeout(() => {
     message.error('下载失败,请稍后再试', 1)
   }, 1000)
 })
}

rel="noopener noreferrer"

<a href="https://www.baidu.com" target="_blank" rel="noopener noreferrer">链接文本</a>

noopener:当链接的 target 属性设置为 “_blank” 时,它用于防止新打开的窗口能够访问原始页面的 window.opener 属性。这可以防止被打开的页面通过 window.opener 访问和操纵原始页面的数据和行为,从而提高安全性。

noreferrer:与 noopener 一起使用时,它还可以防止被打开的页面发送 Referer 头部信息。这可以防止被打开的页面揭示原始页面的 URL 信息,从而提高隐私性。

综上所述,rel=“noopener noreferrer” 是一种最佳实践,用于在新窗口中打开链接时提高安全性和隐私性。

wakatime

学习路线

https://objtube.github.io/front-end-roadmap/?ref=www.tboxn.com#/

更新于:

note