程序员都应该知道的URI,一文帮你全面了解
URI 是每个程序员都应该了解的概念,同时相关联的还有 URL, URN 等概念簇。了解这些概念,可以帮助我们更好地窥探万维网(WWW)的设计,同时也能帮我们在工作中有效解决跟 URI 相关概念的问题,更加理解 encode,decode 工作原理,更好地助力网络编程!
1.URI
URI(Uniform Resource Identifier) ,意为统一资源标识符,提供了一套简单可扩展的方式对资源进行标识。…
记录-交流-Web开发知识分享
URI 是每个程序员都应该了解的概念,同时相关联的还有 URL, URN 等概念簇。了解这些概念,可以帮助我们更好地窥探万维网(WWW)的设计,同时也能帮我们在工作中有效解决跟 URI 相关概念的问题,更加理解 encode,decode 工作原理,更好地助力网络编程!
URI(Uniform Resource Identifier) ,意为统一资源标识符,提供了一套简单可扩展的方式对资源进行标识。…
PHP 8在PHP的内核中添加了JIT(即时编译)编译器,可以极大地提高性能。
纯解释程序语言没有编译步骤,可以直接在虚拟机中执行代码。实际上,包括PHP在内的大多数解释型语言都有一个轻量级的编译步骤来提高其性能。
另一方面,使用Ahead-Of-Time(AOT)编译进行编程的语言要求在运行代码之前首先对其进行编译。
即时编译是解释器和提前编译的混合模型,部分或全部代码通常在运行时进行编译,而无需开发人员手动进行编译。
PHP历史上是一种解释语言,所有代码都是由虚拟机(Zend VM)解释的。通过引入由PHP代码生成的Opcache和Opcodes,可以对此进行更改,并且可以将其缓存在内存中。PHP 7.0添加了AST(抽象语法树)的概念,该概念进一步将解析器与编译器分离。
PHP的JIT内部使用LuaJIT的DynASM,并作为Opcache的一部分实现。
深入
了解JIT有关最佳JIT配置,基准以及JIT如何工作的详细指南
Opcache可以检查使用的代码(通常称为热代码),并将它们的编译版本存储在共享的Opcache内存中。什么时候应该编译代码,什么时候应该编译代码是可配置的。
当前在运行在x86和x64处理器指令集上的Linux和Windows系统上启用了JIT。当前不支持Apple M1和ARM CPU。
DynASM是PHP JIT中使用的编译器,它也支持ARM指令,但是尚不清楚PHP JIT是否可以在ARM处理器上运行。
如果CPU支持JIT,则JIT也可以使用AVX。2011年及以后的大多数消费者和服务器级处理器都支持AVX指令。cat /proc/cpuinfo | grep
…
PHP 8.0 带来了一些新功能,并在性能,语法,安全性和稳定性方面进行了改进。借助目前所有受支持的Debian和Ubuntu版本中可用的预编译软件包,可以轻松地在几乎任何类型的服务器/开发设置上安装PHP 8.0。
…目前尚无PHP 8.0的普遍可用版本。尽管PHP 8.0当前处于功能冻结状态,但有可能在2020年11月发布更稳定的版本之前进行许多更改。对于生产系统,请等待正式的稳定版本。
每一个好习惯都是一笔财富,本文分SQL后悔药, SQL性能优化,SQL规范优雅三个方向,分享写SQL的21个好习惯,谢谢阅读,加油哈~
公众号:捡田螺的小男孩
首先我们的了解Git通常的操作流程,网上流行的不错一张图👇
…
近期甲方做了什么安全检查防止html、js被串改,要求加上integrity属性这边记录下如何生成hash值
在linux上面使用此命令计算你需要生成hash的文件
[root@hhlqrtest js]# cat ./util.js | openssl dgst -sha384 -binary | openssl enc -base64 -A
rfhUX/daSXdrSIHpOOPTxq222dR4unGS9FO+MsBx/DHDzaWWQwiWyqHKERHtNMnG
[root@hhlqrtest js]#
rfhUX/daSXdrSIHpOOPTxq222dR4unGS9FO+MsBx/DHDzaWWQwiWyqHKERHtNMnG
这一行就是我们需要的hash值
crossorigin="anonymous" integrity="sha384-[刚刚的hash值]"
例如:…
虽然本质上 API 就是拿来用的,但即便某个 API 的使用者全是内部人员,它还是可能会出现安全问题。为了解决 API 安全问题,在本文我们收集了一系列 API 的最佳实践,希望你记住这些 Tips 日后在保护 API/Web 服务安全和免受入侵时,会帮助到你。
…作者:Iain Freestone翻译:疯狂的技术宅
本文列举出 50 个能够帮你提高开发效率,节省开发时间的 Chrome 扩展和 Web 应用,它们很有可能会在什么时候派上用场。老规矩,先转发、点赞、点再看三连,最后再慢慢阅读,千万别让它在收藏夹里吃灰。…
跨域这个话题已经谈了很多年了,怎么现在又要谈这个问题?本来是可以不必再提了的,但是由于Chrome 86
版本以后又增加了很多限制,导致我们不得不再次提起。
对于前端开发来说,跨域通常有两种方式,一种是在服务端修改nginx
配置,在response headers
里添加CORS
设置,另一种是在本地架设代理。我们先谈第一种。
原本在nginx
里添加CORS
已经是一种常规操作,简单到无以复加:…
Laravel Packer是Sarthak Shrivastava的命令行工具,用于加快laravel软件包的创建速度。您可以在创建Laravel软件包时使用所有artisan命令,并为在软件包中创建的模型创建CRUD。要创建新程序包,可以使用packr
CLI,它将为您创建所有程序包脚手架:
packr new your-package-name {vendor} {author} {author_email}
在开发软件包时,可以使用熟悉的Artisan命令生成软件包控制器,模型等:
packr make:controller ExampleController
packr make:model Post
Packer是使用Laravel Zero构建的,您可以在他的YouTube播放列表中找到有关此组合的详细教程(由Sarthak发布):
您可以在bitfumes/laravel-packer上了解有关此软件包的更多信息,获取完整的安装说明,并在GitHub上查看源代码。
更多创建laravel软件包方法与工具请参考 https://laravelpackage.com/
…
近期评论