美文网首页
AHM-20191016

AHM-20191016

作者: Robin92 | 来源:发表于2019-11-02 18:01 被阅读0次

    base64 放在了 url 上引发了问题。

    1. base64 是一种编码方式,不是加密方式
    2. 不是 urlsafe 的
    3. 会增长约1/3

    base64 编码方式

    • 用官方的话解释说:“基于64个可打印字符来表示二进制数据”。
    • 可打印 即是用来将一些不可打印的数据转换成可打印(可输出显示)的数据。
    • 一般来说,这64个字符是A-Za-z0-9 再加上 +/
    • = 是用于标记补位。由于最后可能不足 6bit,所以会补 \x00,后面再用等号标记。
    • 由于 +/ 的存在,即不是 urlsafe 的。因为 url 在传输过程中会将 +/ 分别编码成 %2B%2F
    • base64 衍生出了许多变种,如将 +/ 改成了 -_等,就变成了 urlsafe 的了。
    • Base64 将原来的 8bit 字符,按每 6bit 分割再高位补 0 成 8bit,因此编码后要比原来长1/3。
    • 总结一下,base64 主要是用于做展示二进制数据用的,不是用来做数据传输的,也不是用来加密的。

    常见网络错误

    • OSI 七层模型:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
    • 网络层:IP、ICMP,负责数据报路由
    • 传输层:TCP、UDP。TCP面向连接的,提供可靠传输,所以会有连接错误的error
    • 会话层:SSL/TLS(1.0, 1.1 不够安全,现在主流 1.2)
    • 应用层:DNS,HTTP(S),FTP,SSH,Telnet...

    DNS 讲解

    • HTTP访问一个域名,要先访问一下 DNS 服务器,解析为IP地址。
    • 在 k8s 中访问 k8s 服务的链路:k8s Pod -> iptables -> kube-coredns Pod
    • k8s 中访问外网服务的链路:k8s Pod -> iptables -> kube-coredns Pod -> 云 nameserver -> DNS 的递归或迭代查询(一定要看)

    HTTP 请求路径

    静态文件

    • CDN 节点(分布式)-> OSS (不持久化会回源)
    • CDN -> OSS -> SLB -> k8s Ingress Controller -> k8s Pod(portal-frontend, h5v1 源代码是没有上传到容器的)
    • OSS 是存放 CDN 文件的服务器,回源也会到这

    :::
    k8s Ingress Controller 是一个具有反向代理功能的控制器,它作为代理和其他服务 Pod 部署在同一网络中,把请求分发到对应的服务器上。
    :::

    动态资源

    • [WAF ->] SLB -> k8s Ingress Controller -> k8s Pod(公网)
    • k8s Pod -> iptables -> k8s Pod (内网)
    • 尽量走内网
      • 延迟少
      • 出错的概率小
      • 不会产生流量费用

    TCP 常见错误

    • connection refused ()
      • 目标服务未启动或未监听端口
      • 防火墙拦截(网络层、传输层的防火墙,如一些IP限制的会有此问题,拦截后会明确回应不接受)
    • connect timed out (连接超时,没有明确拒绝)
      • 目标服务压力过大,处理不来
      • 防火墙拦截(有些防火墙拦截下来但不给你任何回应)
      • ISP 网络异常(网速慢)
    • read/write timedout/error
      • 一端过早超时
      • ISP 网络异常(网速慢)

    DNS 常见错误

    DNS 的作用就是用 domain 换取 IP 地址

    • Could not resolve host: xxx
      • 域名确实不存在(检查域名)
      • nameserver 不响应、超时(过载)、过期(新改的域名没同步)
        • (nameserver 在 linux 上就是 /etc/resolv.conf)
        • 可能 nameserver 配错了,检查一下配置
        • 可能 k8s kube-coredns 异常
        • 阿里云异常(在阿里云中有问题,阿里云外没问题)
        • ISP 异常
        • DNS 服务商异常

    HTTP 常见错误

    • 302 (临时重定向)
      • WAF 在做 CC 防护的时候拦截掉了
      • 代码正常行为
    • 405 (Method Not Allowed)
      • WAF WEB 应用防护拦截
      • 代码行为(常见到的是 method 写错)
    • 499 (Client Closed Request,客户端先关闭了此连接)
      • 客户端超时时,nginx 会记录此状态
    • 502 (Bad gateway,网关挂了)
      • SLB 后端(k8s Ingress Controller)异常
    • 503(Service unavailable)
      • SLB 无可用后端(k8s Ingress Controller)
      • k8s Ingress Controller 无可用 Pod
      • 代码行为
    • 504(Gateway timeout,网关超时)
      • 上游超时,不能从上游获得响应

    (看一下网关是什么作用,为什么会出现上面两种 gateway 的错误)

    :::
    网关是用于两种不同协议间的互连,它一般是一个计算机系统或设备。所以出了错误时要找这个设备的问题。 k8s 中应该就是 k8s Ingress Controller
    :::

    HTTPS 常见错误

    • 客户端不支持 SNI 而无法匹配证书
    • 不支持 TLS 1.2 而无法建立连接

    相关文章

      网友评论

          本文标题:AHM-20191016

          本文链接:https://www.haomeiwen.com/subject/rcocbctx.html