当前位置:网站首页>别看了,这就是你的题呀
别看了,这就是你的题呀
2022-08-01 22:08:00 【phpstory】
一、浏览器输入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 )
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
)
注意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
)
五、常见的 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可用于验证登录用户和发起请求者是否是同一人,如果不是则请求失败。【该原理和验证码的原理是一致】
边栏推荐
- xctf攻防世界 Web高手进阶区 webshell
- SAP ABAP OData 服务如何支持删除(Delete)操作试读版
- feel so stupid
- HCIP---Architecture of Enterprise Network
- 小程序毕设作品之微信美食菜谱小程序毕业设计成品(6)开题答辩PPT
- 你居然不懂Bitmap和Drawable? 相关知识大扫盲
- 深度学习Course2第一周Practical aspects of Deep Learning习题整理
- PAM Palindromic Automata
- 小程序毕设作品之微信体育馆预约小程序毕业设计成品(2)小程序功能
- String - Trie
猜你喜欢

Small program -- subcontracting

The must-have "fishing artifact" for programmers is here!

Advanced Algebra_Proof_The algebraic multiplicity of any eigenvalue of a matrix is greater than or equal to its geometric multiplicity
![[深入研究4G/5G/6G专题-48]: 5G Link Adaption链路自适应-4-下行链路自适应DLLA-PDCCH信道](/img/6b/d4ff120493e878fcf5c9aa728eced7.png)
[深入研究4G/5G/6G专题-48]: 5G Link Adaption链路自适应-4-下行链路自适应DLLA-PDCCH信道

shell specification and variables

恒星的正方形问题

使用分类权重解决数据不平衡的问题

shell programming conventions and variables

模拟数据之mockjs

Ten years after graduation, financial freedom: those things that are more important than hard work, no one will ever teach you
随机推荐
Unity Shader general lighting model code finishing
Getting Started Database Days4
小程序毕设作品之微信体育馆预约小程序毕业设计成品(2)小程序功能
深度学习Course2第二周Optimization Algorithms习题整理
SAP ABAP OData 服务如何支持删除(Delete)操作试读版
0DFS Medium LeetCode6134. Find the closest node to the given two nodes
HCIP---Multiple Spanning Tree Protocol related knowledge points
Flutter基础学习(一)Dart语言入门
【Verilog刷题篇】硬件工程师从0到入门1|基础语法入门
number of solutions to solve a multivariate multi-degree equation
论文解读(GSAT)《Interpretable and Generalizable Graph Learning via Stochastic Attention Mechanism》
MySQL related knowledge
小程序毕设作品之微信美食菜谱小程序毕业设计成品(7)中期检查报告
你居然不懂Bitmap和Drawable? 相关知识大扫盲
LeetCode952三部曲之二:小幅度优化(137ms -> 122ms,超39% -> 超51%)
SOM Network 2: Implementation of the Code
AQS
【ASM】字节码操作 MethodWriter
Deep Learning Course2 Week 2 Optimization Algorithms Exercises
JS prototype hasOwnProperty in 加方法 原型终点 继承 重写父类方法