Bikin request HTTP GET dengan PHP emang gampang. Cukup:

$url = 'http://google.com/';
echo file_get_contents($url);

Tetapi, gimana kalau request POST? Ada banyak solusi. Pertama pakai CURL, yg kedua, bikin request HTTP manual, misal:

$fp = fsockopen($host,$port);
fputs($fp, "POST / HTTP/1.0rn".
"Content-Length: 3rn".
"Content-Type: application/x-www-form-urlencodedrnrn".
"x=2");
...

Tapi kan ngga seru, panjang dan rawan problem. Solusi gampang, kita bisa pakai stream_context_create, cara pakainya gini:

$vars='a=1';
$context = array('http' =>
    array(
        'method' =>	'POST',
        'header' =>	"Content-type: application/x-www-form-urlencodedrn" .
        "User-Agent: PHP pake streamrn" .
        "Content-length: " .strlen($vars),
        'content' => $vars
    )
);
$cid = stream_context_create($context);
$sock = fopen($url, 'r', false, $cid);
$data = '';
while(!feof($sock)) { $data .= fgets($sock, 2048); }
fclose($sock);

Lebih bersih dan lebih simpel dari bikin HTTP request biasa. Nah, daftar opsi context untuk protocol HTTP nya bisa di lihat disini manual PHP bagian HTTP context. Dan untuk protokol2 lain, silahkan baca baik2 di manual PHP bagian context

Happy coding ;)