Inode
一个文件占用一个inode ,且inode是固定的,小文件过多就可能造成磁盘空间剩余挺多,但是inode耗尽的情况。
df -i
查看当前系统inode使用情况
一级一级往下,统计inode文件数量。数字大就表示占用inode多
在两台计算机相互传递信息时,HTTP规定了每段数据以什么形式表达才是能够被另外一台计算机理解
第一步:在浏览器输入内容(网址)
第二步:浏览器把 域名 发送到DNS上 ,进行解析 得到IP之后链接到指定
服务器 (服务器地址110,102.13.32:80 从浏览器到服务器使用底层TCP/IP)
第三步:实现TCP/IP协议用Socket 用Socket套接字
第四步:服务器端口80监听客户端链接(客户端到服务器端链接)
HTTP 1.0 一个链接发送一个请求
HTTP 1.1 一个链接发送多个请求
get 向服务器 【索取】 数据的一种 请求
一般用于 获取/查询 资源信息
get用于信息获取,而且应该是安全(指非修改信息)和幂等
如:新闻头版不断更新,该操作被认为安全和幂等,从自身角度来看没有改变资源
post 向服务器 【提交】 数据的一种 请求
一般用于 更新 资源信息
post表示可能修改服务器上的资源请求
如:评论新闻,提交后站点资源不同,资源被修改
表面现象
get请求数据附在URL上; post提交数据放在http包体中
get字节限制(1024) 实质是浏览器(和服务器)的限制 ; post理论没有限制
post 安全(security)性比 get安全(security)性高
规定的是数据应该怎么传输才能稳定且高效的传递与计算机之间。
\ | TCP | UDP |
---|---|---|
是否连接 | 面向连接 | 面向非连接 |
传输可靠性 | 可靠 | 不可靠 |
应用场合 | 传输大量的数据,对可靠性要求较高的场合 | 传送少量数据、对可靠性要求不高的场景 |
速度 | 慢 | 快 |
1.客户端发送syn报文,序号seq=X
2.服务发送syn+ack报文,序号seq=y,确认ack=X+1
3.客户端发送ack报文,序号seq=Z ,确认ack=Y+1
四次挥手的过程可以知道每一方都要发送一个FIN报文和一个ACK报文
服务端发送的ACK报文并不能和FIN报文结合在一起发送,因为要等待服务端进程处理完数据之后才可以关闭连接, 所以是四次挥手.
HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议
1 | ❯ sudo apt install tcpdump |
❯ kubectl get pods -o wide -A | grep -E ‘^NAMESPACE|traefik’
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
default traefik-7d7459bcdc-js5gc 1/1 Running 0 4h42m 121.21.112.116 k8s08❯ kubectl get pod
traefik-7d7459bcdc-js5gc
-o json |grep -C 2 containerID
“containerStatuses”: [
{
“containerID”: “containerd://e11f4f9710a330ba375823e849f32880fe7103e12324ae4d2ec3b7dc9879662b
“,
“image”: “k8s.org/k8s/traefik:v2.10.4”,
“imageID”: “k8s.org/k8s/traefik@sha256:57b2516b7549c4f59531bb09311a54a05af237670676529249c3c0b8e58ad0f3”[root@k8s08 ~]# crictl exec
e11f4f9710a330ba375823e849f32880fe7103e12324ae4d2ec3b7dc9879662b
/bin/sh -c ‘cat /sys/class/net/eth0/iflink’
DEBU[0000] get runtime connection
DEBU[0000] ExecRequest: &ExecRequest{ContainerId:e11f4f9710a330ba375823e849f32880fe7103e12324ae4d2ec3b7dc9879662b,Cmd:[/bin/sh -c cat /sys/class/net/eth0/iflink],Tty:false,Stdin:false,Stdout:true,Stderr:true,}
DEBU[0000] ExecResponse: &ExecResponse{Url:http://127.0.0.1:41659/exec/u51c3Rnf,}
DEBU[0000] Exec URL: http://127.0.0.1:41659/exec/u51c3Rnf
DEBU[0000] StreamOptions: {0xc000012018 0xc000012020 false } 8
[root@k8s08 ~]# for i in /sys/class/net/veth/ifindex; do grep -l8
$i; done*
/sys/class/net/veth2e926487
/ifindex[root@k8s08 ~]# sudo tcpdump -i veth91f5a7d7 -w ~/tcpdump.cap
== ! && or
1 | tcp.port==80 && ip.src == 192.168.56.116 |
https://www.npmjs.com/package/npm
设置
1 | echo "registry = https://registry.npm.taobao.org">>~/.npmrc |
查看当前源
1 | npm config get registry |
doc https://mermaid.js.org/intro/
1 | graph LR; |
1 | graph TB; |
1 | public static void main(String[] args) { |
用stream的filter来替代if/else业务逻辑
1 | for(int i=0;i<10;i++){ |