RESTful接口现在很普遍,但是如果你作为一名web开发者,你应该知道对于不同的情况如何去选择一个最合适的HTTP方法有点困难。
对于开发REST接口来说,更新一个资源是常见的事,这里有两个开发者经常使用的HTTP方法:PUT
和PATCH
,一般你会选择哪一个?
这两个方法看起来作用相同,都是更新一个服务的资源,但它们底层确是完成不同的事情。本篇文章将帮助你理解PUT和PATCH请求之间的区别,以便你可以设计一个专业的生产级别的API。
RESTful接口现在很普遍,但是如果你作为一名web开发者,你应该知道对于不同的情况如何去选择一个最合适的HTTP方法有点困难。
对于开发REST接口来说,更新一个资源是常见的事,这里有两个开发者经常使用的HTTP方法:PUT
和PATCH
,一般你会选择哪一个?
这两个方法看起来作用相同,都是更新一个服务的资源,但它们底层确是完成不同的事情。本篇文章将帮助你理解PUT和PATCH请求之间的区别,以便你可以设计一个专业的生产级别的API。
编译器
(Compiler)和解释器
(Interpreter)是两种不同的工具,都可以将编程语言
和脚本语言
转换为机器语言
。
编译器
可以将整个程序转换为目标代码
(object code),这些目标代码通常存储在文件中。目标代码也被称为二进制代码
,在进行链接
(link)后可以被机器直接执行。典型的编译型程序语言有C
和C++
。
解释器
(Interpreter)能够直接执行程序或脚本语言中编写的指令,而不需要预先将这些程序或脚本语言转换成目标代码
或者机器码
。典型的解释型语言有Perl
、Python
、PHP
和Matlab
。
以下是关于编译器
和解释器
有趣的方面:
编译器
和解释器
都能将源代码(文本文件)转换为其他符号;都能生成语法树(parse tree
);都能生成立即指令(immediate instructions
,即该指令中要操作的数据已经包含在了指令中,而不是在指令中操作数据所在的地址)。它们的不同之处是,编译器包含了链接器
(linker),生成独立的机器代码程序,而解释器是直接执行高级语言所描述的操作。
一旦程序被编译了,则它的源代码对于运行程序来说没用处了。而解释型程序的源代码在运行程序的时候是始终都需要被用到。
解释型程序一般会比编译型程序运行效率低。
Java程序首先会被编译器编译成中间状态(即字节码),然后再被解释器执行。
最近在研究和开发统一用户身份认证的系统,与此同时也了解到市场上有着如IAM、IDaaS这样的公有云产品,可以将应用快速接入实现统一用户身份认证、权限管理、SSO单点登录等功能。
我主要了解的是阿里云的IDaaS产品,一直认为阿里云产品文档是一个非常好的学习途径,在了解该类产品和功能过程中,阿里云在文档中除了说明产品的使用,更是加入了一些概念的讲解、知识的讲解。这里倒是要摘一些重要的概念。
关于IDaaS就不多说了,主要是理解一下IDaaS中,如何与应用系统进行帐户关系上的处理。目前了解有三种,但主要还是关注帐户映射(Account Mapping
)和帐户关联(Account Linking
)两种做法,还有一种好像是基于角色的帐户。
PHP日志不仅仅记录错误,你也可以使用日志来追踪API或函数调用的性能,或统计你应用程序中重要事件的发生次数(例如登录、注册、下载等)。无论你是微服务还是单体架构,对PHP应用程序日志的全面记录将会让你能够追踪应用中关键点,并优化其性能。
PHP和开源的日志库让你可以选择在哪里发送日志和存储日志。如你在这篇文章中看到,将PHP日志存储在一个中央仓库是最简单的,并且为以后处理和分析日志提供了很大的便捷。当你使用专用的工具对日志文件进行tail并转发到中央仓库时,你的应用程序代码不需要承担缓冲日志和处理网络错误的代价。
在这篇文章,你将学习到:
问题现象:当docker将宿主机上的一个文件直接挂载到容器内时,在宿主机上修改该文件的内容后,在容器中看到该文件内容不变,或者容器中该文件不见了。
当写HTML代码时,你可以在你的HTML元素中定义attributes
,然后浏览器解析你的代码并创建一个对应的DOM
节点。这个节点是一个Object
,因此它具有properties
。