HTTP协议(*)指定浏览器应如何发送请求.
HTTP基本上由一组明文标题组成,由换行符分隔,然后是传输的数据.在HTTP请求中,POST数据的实际格式与GET数据几乎相同;它只是在HTTP标头的不同部分.
您可以使用Firebug或Fiddler等工具来确切了解传入和传出HTTP请求的标头和数据的格式.实际上阅读起来非常简单,所以你应该能够通过观察来解决它.
一旦到达服务器,PHP解释器负责将原始HTTP请求数据转换为其标准的$_GET,$_POST等变量.这是PHP为您所做的事情.
其他语言(例如Perl)没有内置此功能,因此Perl程序员必须在其程序中使用代码将传入的请求数据解析为有用的变量.幸运的是,即使Perl有一个标准的库可以包含它来完成工作,所以即使Perl程序员通常也不必再自己编写代码了.
PHP和任何其他语言的方式只是字符串操作.正如我所说,HTTP数据是纯文本,并以简单的字符串格式接收,因此只需将其分解为问号和等号字符即可将其分解.
由于PHP在幕后完成所有工作,您可能不需要担心它使用的确切机制,但如果您真的想知道PHP源代码可用.
我说这都是纯文本.当然,HTTPS是加密的.然而,当PHP掌握它时,Apache服务器已经完成了解密,因此就PHP而言,它仍然是纯文本.
(*)在任何人拉我之前,是的,我知道说“HTTP协议”是一种冗余,如“ATM机”或“PIN号”.