• 别看了,这就是你的题呀


    一、浏览器输入URL到页面加载发生了什么
    1、DNS解析:把域名解析成对应的ip
    2、浏览器与网站建立TCP连接(三次握手)
    第一次握手:客户端向服务器端发送请求(SYN=1) 等待服务器确认;
    第二次握手:服务器收到请求并确认,回复一个指令(SYN=1,ACK=1);
    第三次握手:客户端收到服务器的回复指令并返回确认(ACK=1)。通过三次握手,建立了客户端和服务器之间的连接,现在可以请求和传输数据了。
    客户端问服务器:哥们你吃饭了么?
    服务器回答客户端并且反问:我吃饭了,你呢?
    客户端回答服务器:我也吃了。

    3、请求和传输数据
    4、浏览器渲染页面
    5.链接结束(四次挥手)
    客户端 -> 服务端:请求完毕
    服务端 -> 客户端:知道请求完毕
    服务端 -> 客户端:发送完毕
    客户端 -> 服务端:知道发送完毕
    二、php接口怎么保证安全性
    1、Token授权机制 2、时间戳超时机制 3、签名机制
    三、Nginx 负载均衡4种模式
    4 种负载均衡算法
    upstream 支持4种负载均衡调度算法:

    A)轮询(默认):每个请求按时间顺序逐一分配到不同的后端服务器;

    B)ip_hash:每个请求按访问IP的hash结果分配,同一个IP客户端固定访问一个后端服务器。可以保证来自同一ip的请求被打到固定的机器上,可以解决session问题。

    C)url_hash:按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器。后台服务器为缓存的时候效率。

    D)fair:这是比上面两个更加智能的负载均衡算法。此种算法可以依据页面大小和加载时间长短智能地进行负载均衡,也就是根据后端服务器的响应时间来分配请求,响应时间短的优先分配。Nginx本身是不支持 fair的,如果需要使用这种调度算法,必须下载Nginx的 upstream_fair模块。
    四、array_merge和array+array的区别
    1、键名为数字时,array_merge()不会覆盖掉原来的值,但+合并数组则会把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉(不是覆盖),array+array 不会重新索引

    <?php
    $a1=array("red","green");
    $a2=array("blue","yellow");
    print_r(array_merge($a1,$a2));
    ?>
    Array
    (
        [0] => red
        [1] => green
        [2] => blue
        [3] => yellow
    )
    print_r(($a1+$a2));
    Array ( [0] => red [1] => green )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    2、键名为字符时,+仍然把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉,但array_merge()此时会覆盖掉前面相同键名的值

    <?php
    $a1=array("a"=>"red","b"=>"green");
    $a2=array("c"=>"blue","b"=>"yellow");
    print_r(($a1+$a2));
    ?>
    Array
    (
        [a] => red
        [b] => green
        [c] => blue
    )
    print_r(array_merge($a1,$a2));
    Array
    (
        [a] => red
        [b] => yellow
        [c] => blue
    )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    注意array+array

    <?php
    $a1=array(2=>"red","green");
    $a2=array(6=>"blue",3=>"yellow");
    print_r(($a1+$a2));
    ?>
    Array
    (
        [2] => red
        [3] => green
        [6] => blue
    )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    五、常见的 PHP 安全性攻击
    1、SQL注入
    将 PHP 的内置 mysql_real_escape_string() 函数用作任何用户输入的包装器。这个函数对字符串中的字符进行转义,使字符串不可能传递撇号等特殊字符并让 MySQL 根据特殊字符进行操作。
    使用预处理语句并绑定变量
    2、跨站点脚本攻击(XSS攻击)
    strip_tags() 函数,这个函数可以清除任何包围在 HTML 标记中的内容
    或者使用htmlspecialchars() 函数。htmlentities()
    3、跨站点请求伪造(CSRF)
    Laravel框架中避免CSRF攻击很简单:Laravel自动为每个用户Session生成了一个CSRF Token,该Token可用于验证登录用户和发起请求者是否是同一人,如果不是则请求失败。【该原理和验证码的原理是一致】

  • 相关阅读:
    【强化学习】优势演员-评论员算法(Advantage Actor-Critic , A2C)求解倒立摆问题 + Pytorch代码实战
    【2022】二进制方式部署etcd高可用集群
    迷宫生成与路径规划算法-Python3.8-附Github代码
    【UE5 Cesium】19-Cesium for Unreal 建立飞行跟踪器(4)
    SpringBoot 如何使用 CORS 进行跨域资源共享
    机器学习算法基础--逻辑回归简单处理mnist数据集项目
    2023年香港专才计划(输入内地人才计划)拿身份最新申请攻略!
    网络运维与网络安全 学习笔记2023.11.21
    最小价格 (爱思创算法四)(期中测试)(答案记录)
    Spring Cloud Sentinel整合Nacos实现配置持久化
  • 原文地址:https://blog.csdn.net/phpstory/article/details/126094110