1.get 跟 post 的区别。
一般无非就是:1、get通过url提交,可以提交的数据有限。post是通过http作为content提交,可以提交数据量大。
2、get是通过url提交,对用户可见。不安全。post是通过http的content提交,对用户不透明,安全性高。
但是这都基本不是运用真正的差异。至少安全性,通过简单的抓包就可以得到post的提交的数据,数据一样不安全。
真正应该从结构层面考虑这个问题,到底什么时候应该用get,什么时候应该用post提交。
应该了解rset.
然后再来看看get跟post。
GET操作是安全的。所谓安全是指不管进行多少次操作,资源的状态都不会改变。比如我用GET浏览文章,不管浏览多少次,那篇文章还在那,没有变化。当然,你可能说每浏览一次文章,文章的浏览数就加一,这不也改变了资源的状态么?这并不矛盾,因为这个改变不是GET操作引起的,而是用户自己设定的服务端逻辑造成的。
POST操作既不是安全的,也不是幂等的,比如常见的POST重复加载问题:当我们多次发出同样的POST请求后,其结果是创建出了若干的资源。
安全和幂等的意义在于:当操作没有达到预期的目标时,我们可以不停的重试,而不会对资源产生副作用。从这个意义上说,POST操作往往是有害的,但很多时候我们还是不得不使用它。
2.写服务器压力瓶颈压力
一般服务器负载均衡,都是一般做主从分离。减少写库的压力,但是如果同时对写库访问呢?
增加一个中间层,类似于cpu跟磁盘之间的效率问题。可以增加一个中间缓存,内存来中间缓存这些资源动作。然后再从中间层一次性提交到sql服务器进行操作。mysql的批量插入,比单独一条条效率会要高很多。
3,获取ip (header头部信息)
一般获取浏览器端的ip地址,$_SERVER["REMOTE_ADDR"]通过这个全局变量获取。
但是如果浏览器是通过层层服务器代理访问的服务器资源呢?那又如何获取原始的ip地址?
协议知识:
http协议,都是将ip地址封装在header头信息里面,依次加密。不管通过多少次代理,都是会将上一次的ip信息封装到header头部信息。这个应该是当时网络七层协议的基本知识点。
运用到实际的http协议,就是应该可以通过http 的header头部信息拿到原始的ip信息。
4,判断一个数是不是2的倍数最快捷的方法
除以2求余?这是我立马引入脑海的办法。
办法:利用php自带的转成二进制,1001的形式,末尾为1的肯定是被二整除。以此为例,三进制,八进制,十六进制。
5,include require细节差异
一般来说:include文件,就算includes的文件有错误,主程序也不会报错。会跳过去,继续执行。
require文件,如果引入的文件有错误,主代码快会停止执行。报错。
为了防止重复引入,一般都会用include_once跟requre_once.
但是问题来了:如果是这样的话,那么什么情况都用include_once就可以啦。为啥还需要require的存在?
这就是,人类很早以前制造了刀剑。但是手持刀剑,那也只是简单的刀剑而已。而能够将刀剑有套路的练习下去,才能进化成武术。这样手里的刀剑,才能发挥最大的作用。
php只是一把武器,掌握php也只是手握一把简单的刀剑而已。简单的语法或许一个月就可以掌握。但是需要更多的实际经历跟经验,才能运用自如,打遍无敌。
版权声明:本文为博主原创文章,未经博主允许不得转载。