http协议说明

今天公司有同事让我给他讲一讲http..然后自己写了一个示例代码,这如果都看不懂.那我也没办法了....

 

 1 <?php
 2 
 3 //这里服务器以apache举例.nginx.iis.他们实际上处理方式的都是同理
 4 //申明http链接的数据包  注意最后面有两个换号.这是告诉apache.数据包的结束,如果后面没有两个换号.apache会以为你请求的数据还没有结束.
 5 //这里的GET .说明是用get方式访问.如果是post.就是以post方式访问  post方式访问的时候.会在两个换号之后拼接post的数据
 6 //这里GET后面跟着的/是访问的路径.. 如果需要访问aaaa.php那么在/后面加上aaaa.php,就可以了
 7 //Host 说明我是告诉apache我要访问的是那个域名
 8 //当然还会有其他的属性..其他的属性baidu一下基本就可以了...
 9 $http = <<<PCNTL_ENFILE
10 GET / HTTP/1.1
11 Host: www.ip138.com
12 
13 
14 PCNTL_ENFILE;
15 
16 
17 //和www.ip186.com的80端口建立链接 并且返回链接资源
18 $sock = pfsockopen("www.ip138.com", 80);
19 
20 //向ip138的链接资源发送http数据包   等于给ip138说的话
21 fwrite($sock, $http);
22 //给服务器说了话之后.服务器内部怎么处理的.http是不需要管的.然后需要管的就是回复器答复的话
23 //发送完数据包之后.读取ip138的链接资源返回的数据 .读取的数据长度为99999,.  等于听ip138回复的99999个字
24 $pack = fread($sock, 99999);
25 
26 //将读取的数据分为头部.和主题内容  头部是给浏览器的说的话.   主题内容就是html代码
27 //比如设置的cookie就是在头部...
28 //这里也是用的两个回车换号来区别的...
29 list($header, $html) = explode("\r\n\r\n", $pack, 2);
30 //打印让浏览器处理的数据
31 print_r($header);
32 
33 //打印html代码.
34 print_r($html);

 

 

posted @ 2015-12-09 11:13  iyoule  阅读(268)  评论(0编辑  收藏  举报