實作一個http伺服器, 在支援php時, 使用fastcgi協定與php-fpm通訊
實作get請求是發送QUERY_STRING和SCRIPT_FILENAME到php-fpm, 伺服器回傳結果,這裡正常.
實作post請求是發送content-length欄位和body內容到fastcgi伺服器, 然後伺服器回傳結果.像下面這樣
表單程式碼
<html>
<body>
<form action = "file.php" method = "POST" >
<input type="text" name="age" />
<input type="submit" />
</form>
</body>
</html>
php程式碼
<?php
var_dump($_POST['age']);
發送的參數
SCRIPT_FILENAME : /home/tan/Demo/studyHttpd/htdocs/file/file.php
REQUEST_METHOD : POST
QUERY_STRING :
CONTENT_TYPE : application/x-www-form-urlencoded
CONTENT_LENGTH : 7
發送的body為 , 也就是表單中的內容
age=123
為什麼php-fpm回傳結果為NULL呢 ?
你分別印
$_POST
和$_REQUEST
即: