William A

最新文章

二进制安全

在 PHP 中很多字符串操作函数都会说明是二进制安全,那么什么是二进制安全呢? 维基百科给出的定义如下: A binary-safe function is one that treats its input as a raw stream of bytes and ignores every textual aspect it may have. The term is mainly used …

从 Socket 编程到 HTTP 服务器

整理自:从 Socket 编程到 HTTP 服务器 Socket 传输层协议很复杂,这些应该是属于操作系统内核的部分,没必要重复开发。但是对于应用程序来说,操作系统需要抽象出 一个概念,让上层应用去编程,这个概念就是"Socket",就像插座一样,一个插头插进插座,建立了连接。Socket 可以 理解为"客户端 IP +客户端 Port + 服务器端 IP + 服务 …

从一个小型编译器一窥编译原理的本质

编译器可以粗略地分为几个简单的部分:词法分析器、语法分析器、代码生成器。其中语义分析器、代码优化器这些不影响本文示例功能。另外,本文的编译器生成的是字节码,因此还需要一个虚拟机来执行。 Lexer 词法分析器 Lexer的功能是将代码串不同的符号进行标记分组,例如(3 + 5) * 2可以拆分为不同的token,分别是(、3、+、5、)、*、2,包含五个分类,有左括号、右括号、加号、乘号以及整数, …

似乎挺多人不知道 PHP 可以通过 URL 甚至请求体来传递 SESSION_ID

由于HTTP是无状态的,服务端不知道前一个访问者跟后一个访问者是否为同一人,于是会话机制出现了。session和cookie几乎总是同时出现的。cookie是由服务端创建、由客户端保存的小块数据,在用户再次访问服务时,会带上该服务端对应的cookie,服务端比对后就能辨别出用户身份。而在服务端跟cookie对应的数据就称为session。 从以上描述可以发现,会话中的cookie是由服务端生成的且 …